Android, NoSuchFieldError при запуске второго действия - PullRequest
9 голосов
/ 19 декабря 2011

У меня есть два приложения, и я превращаю одно в библиотеку, чтобы я мог запустить его из другого приложения. В моей библиотеке есть изображение в Facebook и изображение в Twitter, которое вызывает NoSuchFieldError. В моем манифесте определена библиотека.

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

Я начинаю эту деятельность, используя

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

Кажется, что находит действие, но при запуске я получаю следующую ошибку в 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)

Следует отметить, что если я запускаю свою библиотеку как приложение, все работает и загружается правильно, без ошибок.

Спасибо за вашу помощь!

EDIT

Я нашел свою проблему. В моей библиотеке я использовал

setContentView(R.layout.main);

Переименование моего макета решило мою проблему.

Спасибо

1 Ответ

8 голосов
/ 19 декабря 2011

startActivity с new Intent(Context, class) применимо, только если ваша деятельность относится к одной и той же программе.Если вы хотите начать действие извне приложения, используйте полное имя пакета.например,

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

Также обратите внимание, что вы написали Activty без 'i' (просто указывает. возможно, вы сознательно сделали это?)

...