2011-07-17 14 views
6

Alguien ha probado la aplicación de demostración para la nueva biblioteca de compatibilidad en Android. HereAndroid Compatibility Library error

Estoy tratando de construir v4 de API 11 y sigo recibiendo este error cuando intento el Support4Demo y haga clic en aquí y buscapersonas en el fragmento de demostración

e07-16 21:32:06.890: ERROR/AndroidRuntime(15315): java.lang.NoClassDefFoundError: com.example.android.supportv4.app.LoaderCustomSupport$AppListFragment 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at com.example.android.supportv4.app.FragmentTabs.onCreate(FragmentTabs.java:55) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1785) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1842) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at android.app.ActivityThread.access$1500(ActivityThread.java:132) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at android.os.Handler.dispatchMessage(Handler.java:99) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at android.os.Looper.loop(Looper.java:143) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at android.app.ActivityThread.main(ActivityThread.java:4263) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at java.lang.reflect.Method.invokeNative(Native Method) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at java.lang.reflect.Method.invoke(Method.java:507) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 07-16 21:32:06.890: ERROR/AndroidRuntime(15315): at dalvik.system.NativeStart.main(Native Method)

Puede alguien me ayude en este ?

Respuesta

6

He resuelto este problema comentando las líneas adecuadas en FragmentTab.onCreate y FragmentTabPager.onCreate.

//mTabManager.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"), 
//  LoaderCustomSupport.AppListFragment.class, null); 
+0

trabajado ... para el buscapersonas – SaKet

10

La razón la clase no se puede encontrar es que una de las interfaces que los implementos AppListFragment (OnQuerytextListener) se define en SearchView que sólo se encuentra en nido de abeja (API 11+).

public static class AppListFragment extends ListFragment implements OnQueryTextListener, LoaderManager.LoaderCallbacks<List<AppEntry>> 
{ 

He buscado a través de la jarra de compatibilidad, pero no puedo encontrar nada que ver con SearchView así que supongo que esto sólo funcionará en nido de abeja y hasta (y compilar a un objetivo más bajo que hace nido de abeja prevenir este trabajo.

también hay un par de otras fallas por la misma razón, por ejemplo, cargador -> acelerador a continuación, pulse menú -. método falta

Desde la página Compatibility Package

Warning: Be certain that you not confuse the standard android packages with those in android.support library. Some code completion tools might get this wrong, especially if you're building against recent versions of the platform. To be safe, keep your build target set to the same version as you have defined for your android:minSdkVersion and double check the import statements for classes that also exist in the support library, such as SimpleCursorAdapter

Seguir sus propios consejos significa que no se puede compilar todo el proyecto: la mitad de las clases de ejemplo parecen depender de algo superior a API 4.

¿Mi respuesta? Algunos de los ejemplos son malos y se basan en código no presente. Con un poco de suerte, Google los actualizará para que funcionen pronto.

Ah sí, puede hacer que funcione temporalmente al eliminar OnQueryTextListener y los métodos de AppListFragment, pero fallará más tarde con un problema diferente.

+0

Esta es la respuesta correcta ... la de klemzy es simplemente una solución fea. – Cristian

+0

@Cristian: Soluciones prácticas y teóricas. Amo stackoverflow.com :) – Macarse

+1

esto también se trata con más detalle en http://code.google.com/p/android/issues/detail?id=18594 y se describen pasos adicionales para "arreglar" la demostración – dweebo