2011-12-19 10 views
9

Mam dwie aplikacje i zamieniam jedną w bibliotekę, dzięki czemu mogę uruchomić ją z innej aplikacji. W mojej bibliotece mam obraz na Facebooku i obraz twitter, który powoduje błąd NoSuchFieldError. Mam bibliotekę zdefiniowaną w moim manifeście.Android, NoSuchFieldError podczas uruchamiania drugiej aktywności

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

Zaczynam tej działalności przy użyciu

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

Wydaje się znaleźć aktywność, ale gdy uruchamia pojawia się następujący błąd w 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) 

muszę podkreślić, że jeśli uruchomię moją bibliotekę jako aplikację, wszystko działa poprawnie i ładuje się poprawnie bez żadnych błędów.

Dzięki za pomoc!

EDIT

znalazłem mój problem. W mojej bibliotece używałem Zmiana nazwy mojego układu rozwiązała mój problem.

Dzięki

+0

+1 dla zadaje to samo dokładnie pytanie miałem zapytać. –

Odpowiedz

8

startActivity z new Intent(Context, class) ma zastosowanie tylko, jeśli działalność jest w tej samej aplikacji. Jeśli chcesz rozpocząć działanie spoza aplikacji, użyj jego pełnej nazwy pakietu. np

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

Należy również pamiętać, że orkisz Activty bez litera „i” (tylko zwrócić uwagę. Być może zrobił to celowo?)

+0

+1 za tę bezcenną informację, wyświetlaną we właściwym miejscu i we właściwym czasie. Jestem pewien, że jest to ukryte gdzieś w mojej 718-stronicowej książce, ale twoja była o wiele łatwiejsza do znalezienia. Dzięki! –

Powiązane problemy