Essayer de mettre en œuvre la campagne de GitHub.Aucune erreur de code, App se bloque, beaucoup d'erreurs de LogCat
-
21-12-2019 - |
Question
Il semble que je demande quelque chose qui a été demandé dans le passé, mais personne d'autre n'a réussi à obtenir une réponse pour, donc les doigts croisés.
J'essaie de mettre en œuvre Le camping de Github . Cependant, cela ne semble pas fonctionner. J'avais essayé 2 sorties possible de la mettre en œuvre (au moins je pense qu'il y en avait 3).
- premier consistait à ajouter le code de campagne dans mon application et En plus de cela implémenter le code de dossier d'échantillon (n'a pas fonctionné)
- le second était en quelque sorte changer le code de fragmentactivité à Activité (Havent a essayé que)
- Troisième était d'importer le code de campagne en tant que bibliothèque. je pense C'était la bonne façon de le faire, donc j'ai énuméré les étapes i ont fait pour le faire fonctionner.
-
J'ai d'abord créé un nouveau projet Android appelé CountryPickerApp et mis en œuvre le code à partir du dossier d'échantillonnage trouvé dans ce référentiel de campagne. Voici le code de MainActivity.class:
package com.example.countrypickerapp; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.Menu; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; import android.widget.Toast; import com.countrypicker.CountryPicker; import com.countrypicker.CountryPickerListener; public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); CountryPicker picker = new CountryPicker(); picker.setListener(new CountryPickerListener() { @Override public void onSelectCountry(String name, String code) { Toast.makeText( MainActivity.this, "Country Name: " + name + " - Code: " + code + " - Currency: " + CountryPicker.getCurrencyCode(code), Toast.LENGTH_SHORT).show(); } }); transaction.replace(R.id.home, picker); transaction.commit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); MenuItem item = menu.findItem(R.id.show_dialog); item.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { CountryPicker picker = CountryPicker.newInstance("Select Country"); picker.setListener(new CountryPickerListener() { @Override public void onSelectCountry(String name, String code) { Toast.makeText( MainActivity.this, "Country Name: " + name + " - Code: " + code + " - Currency: " + CountryPicker.getCurrencyCode(code), Toast.LENGTH_SHORT).show(); } }); picker.show(getSupportFragmentManager(), "COUNTRY_PICKER"); return false; } }); return true; }
}
-
Voici le code du fichier androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.countrypickerapp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.countrypickerapp.Main1Activity" android:label="@string/app_name" android:parentActivityName="@string/title_activity_main1"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.countrypickerapp.MainActivity" android:label="@string/title_activity_main1" > </activity> </application> </manifest>
-
Autant que j'ai compris le dossier principal (CountryPicker) devait être importé comme une bibliothèque, donc j'ai suivi ces étapes:
-
et voici la liste des erreurs de journal logcat:
11-17 02:06:37.320: I/SurfaceTextureClient(9657): [STC::queueBuffer] this:0x4fa637f8, api:1, last queue time elapsed :5603 ms 11-17 02:06:37.321: I/SurfaceTextureClient(9657): [0x4fa637f8] frames:2, duration:5.603000, fps:0.356932 11-17 02:06:37.325: W/MMUMapper(9657): fail to register MVA, unsupported format(0x5) 11-17 02:06:37.413: W/ActionMenuPresenter(9657): showOverflowMenu fail, mReserveOverflow=true, mMenu.getNonActionItems().size()=1, isOverflowMenuShowing()=false 11-17 02:06:37.476: W/MMUMapper(9657): fail to register MVA, unsupported format(0x5) 11-17 02:06:37.490: W/MMUMapper(9657): fail to register MVA, unsupported format(0x5) 11-17 02:06:37.510: W/MMUMapper(9657): fail to register MVA, unsupported format(0x5) 11-17 02:06:38.094: W/MMUMapper(9657): invalid operation for unregister MVA with VA(0x52b85000) size(57344) f(0x5) 11-17 02:06:38.094: W/MMUMapper(9657): invalid operation for unregister MVA with VA(0x52cec000) size(57344) f(0x5) 11-17 02:06:38.095: W/MMUMapper(9657): invalid operation for unregister MVA with VA(0x52cfa000) size(57344) f(0x5) 11-17 02:06:38.102: W/InputEventReceiver(9657): Attempted to finish an input event but the input event receiver has already been disposed. 11-17 02:06:40.889: W/MMUMapper(9657): invalid operation for unregister MVA with VA(0x528cf000) size(614400) f(0x5) 11-17 02:06:40.890: W/MMUMapper(9657): invalid operation for unregister MVA with VA(0x52d6d000) size(614400) f(0x5) 11-17 02:06:40.890: W/MMUMapper(9657): invalid operation for unregister MVA with VA(0x52aa9000) size(614400) f(0x5) 11-17 02:10:40.214: E/Trace(10401): error opening trace file: No such file or directory (2) 11-17 02:10:40.316: W/dalvikvm(10401): Unable to resolve superclass of Lcom/example/countrypickerapp/MainActivity; (11) 11-17 02:10:40.316: W/dalvikvm(10401): Link of class 'Lcom/example/countrypickerapp/MainActivity;' failed 11-17 02:10:40.317: E/dalvikvm(10401): Could not find class 'com.example.countrypickerapp.MainActivity', referenced from method com.example.countrypickerapp.Main1Activity$1.onClick 11-17 02:10:40.317: W/dalvikvm(10401): VFY: unable to resolve const-class 57 (Lcom/example/countrypickerapp/MainActivity;) in Lcom/example/countrypickerapp/Main1Activity$1; 11-17 02:10:40.505: W/MMUMapper(10401): fail to register MVA, unsupported format(0x5) 11-17 02:10:40.615: W/MMUMapper(10401): fail to register MVA, unsupported format(0x5) 11-17 02:10:42.480: I/SurfaceTextureClient(10401): [0x4fa637f8] frames:2, duration:1.945000, fps:1.027828 11-17 02:10:42.499: W/MMUMapper(10401): fail to register MVA, unsupported format(0x5) 11-17 02:10:42.619: W/dalvikvm(10401): threadid=1: thread exiting with uncaught exception (group=0x41269908) 11-17 02:10:42.638: E/AndroidRuntime(10401): FATAL EXCEPTION: main 11-17 02:10:42.638: E/AndroidRuntime(10401): java.lang.NoClassDefFoundError: com.example.countrypickerapp.MainActivity 11-17 02:10:42.638: E/AndroidRuntime(10401): at com.example.countrypickerapp.Main1Activity$1.onClick(Main1Activity.java:22) 11-17 02:10:42.638: E/AndroidRuntime(10401): at android.view.View.performClick(View.java:4091) 11-17 02:10:42.638: E/AndroidRuntime(10401): at android.view.View$PerformClick.run(View.java:17072) 11-17 02:10:42.638: E/AndroidRuntime(10401): at android.os.Handler.handleCallback(Handler.java:615) 11-17 02:10:42.638: E/AndroidRuntime(10401): at android.os.Handler.dispatchMessage(Handler.java:92) 11-17 02:10:42.638: E/AndroidRuntime(10401): at android.os.Looper.loop(Looper.java:153) 11-17 02:10:42.638: E/AndroidRuntime(10401): at android.app.ActivityThread.main(ActivityThread.java:5037) 11-17 02:10:42.638: E/AndroidRuntime(10401): at java.lang.reflect.Method.invokeNative(Native Method) 11-17 02:10:42.638: E/AndroidRuntime(10401): at java.lang.reflect.Method.invoke(Method.java:511) 11-17 02:10:42.638: E/AndroidRuntime(10401): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825) 11-17 02:10:42.638: E/AndroidRuntime(10401): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:588) 11-17 02:10:42.638: E/AndroidRuntime(10401): at dalvik.system.NativeStart.main(Native Method)
File->New->Other Select Android Project Select "Create Project from existing source" Click "Browse..." button and navigate to johannilsson-android-actionbar\actionbar Finish (Now action bar project in your workspace) Right-click on your project -> Properties In Android->Library section click Add select recently added project -> Ok
Additonally, j'ai ajouté une activité supplémentaire appelée MainActivity1 qui a un bouton, qui, lorsque vous avez cliqué, redirige vers la mainagivité dans laquelle CountryPicker est implémenté.
J'espère que j'ai bien expliqué mon problème et que je serai une solution, une pointe, un indice ou tout ce qui pourrait me rapprocher de le faire fonctionner. Je sais que j'aurais pu réimplémenter tout cela à partir de zéro à l'aide de différentes méthodes, mais je ne vois pas un point de réinventer quelque chose qui a déjà été mis en œuvre et téléchargé pour le partage, à part l'apprentissage de quelque chose de nouveau bien sûr.
La solution
Votre manifeste déclare