【问题标题】:Android, NoSuchFieldError when launching second activityAndroid,启动第二个活动时出现 NoSuchFieldError
【发布时间】:2011-12-19 16:16:38
【问题描述】:

我有两个应用程序,正在将一个应用程序变成一个库,以便我可以从另一个应用程序启动它。在我的库中,我有一个导致 NoSuchFieldError 的 facebook 图像和一个 twitter 图像。我在清单中定义了库。

<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);

重命名布局解决了我的问题。

谢谢

【问题讨论】:

  • +1 表示我提出了同样的问题。

标签: java android android-activity


【解决方案1】:

startActivitynew Intent(Context, class) 仅适用于您的活动在同一个应用程序中的情况。如果您想从应用程序外部启动一个活动,请使用其完整的包名。 例如,

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

另请注意,您拼写的 Activty 没有“i”(只是指出。也许您是故意这样做的?)

【讨论】:

  • +1 为这条无价的信息,出现在正确的地点和正确的时间。我确信这隐藏在我 718 页的书中的某个地方,但你的更容易找到。谢谢!
猜你喜欢
  • 2014-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
相关资源
最近更新 更多