2011-12-19 39 views
9

Tengo dos aplicaciones y estoy convirtiendo una en una Biblioteca para poder iniciarla desde otra aplicación. En mi biblioteca tengo una imagen de Facebook y una imagen de Twitter que causa NoSuchFieldError. Tengo la biblioteca definida en mi manifiesto.Android, NoSuchFieldError al iniciar la segunda actividad

<activity android:name="com.funayman.listactivity.ApplicationListActivty" /> 

estoy empezando esta actividad utilizando

startActivity(new Intent(this, ApplicationListActivty.class)); 

Parece que encontrar la actividad, pero cuando se lance me sale el siguiente error en LogCat:

E/AndroidRuntime( 731): java.lang.NoSuchFieldError: com.funayman.listactivity.R$id.img_fb 
E/AndroidRuntime( 731): at com.funayman.listactivity.ApplicationListActivty.onCreate(ApplicationListActivtyActivity.java:58) 
E/AndroidRuntime( 731): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
E/AndroidRuntime( 731): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
E/AndroidRuntime( 731): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
E/AndroidRuntime( 731): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
E/AndroidRuntime( 731): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
E/AndroidRuntime( 731): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime( 731): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime( 731): at android.app.ActivityThread.main(ActivityThread.java:4363) 
E/AndroidRuntime( 731): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime( 731): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime( 731): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime( 731): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
E/AndroidRuntime( 731): at dalvik.system.NativeStart.main(Native Method) 

Debo señalar que si abro mi biblioteca como una aplicación, todo funciona y se carga correctamente sin ningún error.

Gracias por su ayuda!

EDITAR

me encontré con mi problema. En mi biblioteca estaba usando

setContentView(R.layout.main); 

Al cambiar el nombre de mi diseño se solucionó el problema.

Gracias

+0

1 para hacer la misma pregunta exacta que estaba a punto de pedir. –

Respuesta

8

startActivity con new Intent(Context, class) sólo es aplicable si su actividad está dentro de la misma aplicación. Si desea iniciar una actividad desde fuera de la aplicación, use su nombre completo de paquete. por ejemplo,

Intent i = new Intent("com.test.application"); 
startActivity(i); 

También tenga en cuenta que haya escrito Activty sin una 'i' (simplemente señalando. Quizá lo hizo deliberadamente eso?)

+0

+1 para obtener esta pieza invaluable de información, que se muestra en el lugar correcto y en el momento adecuado. Estoy seguro de que esto se esconde en algún lugar de mi libro de 718 páginas, pero el tuyo fue mucho más fácil de encontrar. ¡Gracias! –

Cuestiones relacionadas