我有两个应用程序并且正在将其转换为库,因此我可以从另一个应用程序启动它。在我的库中,我有一个facebook图像和一个导致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)
我应该指出,如果我将我的库作为一个应用程序启动,一切正常,加载正确,没有任何错误。
感谢您的帮助!
修改
我发现了我的问题。在我的图书馆,我正在使用
setContentView(R.layout.main);
重命名我的布局解决了我的问题。
由于
答案 0 :(得分:8)
startActivity
的 new Intent(Context, class)
仅适用于您的活动位于同一应用程序中的情况。如果要从应用程序外部启动活动,请使用其完整包名称。
例如,
Intent i = new Intent("com.test.application");
startActivity(i);
另请注意,你拼写Activty
没有'i'(只是指出。也许你是故意这样做的?)