注意:这不是一个罐子中缺少的类,所以不要急于将其标记为重复。
我正在从eclipse移植一个大项目到Android Studio。我终于成功地在屏幕上看到了我的SplashActivity,但是我无法获得在SplashActivity之后启动的MainActivity。我收到以下错误运行时:使用Android Studio的活动NoClassDefFoundError
<activity
android:name="com.androidcore.android.main.MainActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light"
android:windowSoftInputMode="stateHidden|adjustPan"
android:launchMode="singleTop">
<intent-filter>
<action android:name="com.totalboox.MESSAGE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
在MainActivity代码:587
// Pushwoosh LIB整合(见https://www.pushwoosh.com/programming-push-notification/android/native-android-sdk-integration/)
> 06-13 14:42:30.176 12389-12389/com.totalboox E/AndroidRuntime: FATAL
> EXCEPTION: main Process: com.totalboox, PID: 12389
> java.lang.NoClassDefFoundError: com.androidcore.android.main.MainActivity$4
> at com.androidcore.android.main.MainActivity.<init>(MainActivity.java:587)
> at java.lang.Class.newInstance(Native Method)
> at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
> at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2317)
> at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
> at android.app.ActivityThread.-wrap11(ActivityThread.java)
> at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
> at android.os.Handler.dispatchMessage(Handler.java:102)
> at android.os.Looper.loop(Looper.java:148)
> at android.app.ActivityThread.main(ActivityThread.java:5417)
> at java.lang.reflect.Method.invoke(Native Method)
> at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
> at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
MainActivity在清单中声明
BroadcastReceiver mBroadcastReceiver = new RegisterBroadcastReceiver()
{
@Override
public void onRegisterActionReceive(Context context, Intent intent)
{
checkMessage(intent);
}
};
其中RegisterBroadcastReceiver来自外部库(pushwoosh)处理通知。
在SplashActivity的代码开始MainActivity:
Intent mainActivity = new Intent(this, MainActivity.class);
mainActivity.putExtra("deep_link_book_id", deepLinkBookId);
startActivity(mainActivity);
finish();
这个谷歌搜索,我发现有这个问题有一个罐子的人。在我的情况下,MainActivity.java是我的源模块之一,它的包名是 package com.androidcore.android.main;
,正如在清单中声明的一样。 该项目由4个子项目组成。 SplashActivity & MainActivity位于同一个子项目中。
我已经花了无数小时。我尝试过:清理,重建,无效缓存和重新启动 - 没有任何帮助。 任何人都可以建议如何制止这个噩梦?提前谢谢了 !
张贴有关MainActivity代码:587 –
'MainActivity $ 4'通常意味着一个内部类,可能是匿名的,你的活动 –
的actionandroid - > action android,categoryandroid - > category Android –