我有一個應用程序在選擇項目菜單時創建一個Intent,但是當用戶第一次點擊這個按鈕時,應用程序會崩潰並顯示以下堆棧跟蹤。Android應用程序崩潰java.lang.NoClassDefFoundError
E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.systemsat.monitriip, PID: 17818
java.lang.NoClassDefFoundError: br.com.systemsat.monitriip.activity.ConfigurationActivity
at br.com.systemsat.monitriip.activity.MainActivity.onOptionsItemSelected(MainActivity.java:212)
at android.app.Activity.onMenuItemSelected(Activity.java:2912)
at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:421)
at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:188)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:103)
at android.support.v7.app.AppCompatDelegateImplV7.onMenuItemSelected(AppCompatDelegateImplV7.java:663)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:810)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:957)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:947)
at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:618)
at android.support.v7.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:155)
at android.view.View.performClick(View.java:5201)
at android.view.View$PerformClick.run(View.java:21163)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
下面是裏面的AndroidManifest.xml我的活動聲明:
<activity
android:name=".activity.ConfigurationActivity"
android:parentActivityName=".activity.MainActivity">
</activity>
此外,以下是被告是問題的通過調用堆棧中的事業線:
Intent hashCodeIntent = new Intent(getApplicationContext(), ConfigurationActivity.class);
在StackOverflow中發現的一些答案指出,乾淨和重建會做的伎倆,但我已經嘗試沒有任何運氣。我也嘗試將MultiDex添加到gradle文件以及我的自定義應用程序類中,但這也導致無法執行。
其他人可以有任何見解我可能做錯了什麼?真正有趣的是,這個錯誤只發生在用戶第一次點擊「配置」屏幕按鈕時。應用程序崩潰後,用戶可以重新打開它並正常點擊按鈕。
預先感謝您。
UPDATE
我已經忘了提及,Android的監視器還崩潰前右記錄以下信息:
Rejecting re-init on previously-failed class java.lang.Class<br.com.systemsat.monitriip.activity.ConfigurationActivity>
更新2
這裏是我的onOptionsItemSelected方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_action_config:
Intent hashCodeIntent = new Intent(this, ConfigurationActivity.class);
hashCodeIntent.putExtra("isConfigurationCall", true);
startActivity(hashCodeIntent);
break;
}
return true;
}
更新3
我剛纔生成的用於測試目的的APK和錯誤沒有顯示。也許它與調試有關?或者甚至與gradle版本有關?我目前使用gradle的最後一個版本。
將'getApplicationContext()'更改爲'this' – petey
如果在發佈完整代碼時petey的溶劑不起作用,請致電。 –
您是否嘗試過清潔建築項目? –