Android应用程序因java.lang.NoClassDefFoundError崩溃

Android应用程序因java.lang.NoClassDefFoundError崩溃,java,android,Java,Android,我有一个应用程序,它在选择项菜单时创建了一个意图,但当用户第一次单击此按钮时,应用程序会崩溃,并出现以下堆栈跟踪 E/AndroidRuntime: FATAL EXCEPTION: main Process: br.com.systemsat.monitriip, PID: 17818 java.lang.NoClassDefFoundError: br.com.systemsat.monitriip.activity.ConfigurationActivity at br.com.s

我有一个应用程序,它在选择项菜单时创建了一个意图,但当用户第一次单击此按钮时,应用程序会崩溃,并出现以下堆栈跟踪

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>
在StackOverflow中找到的一些答案告诉我,清洁和重建可以做到这一点,但我尝试了,没有任何运气。我还尝试将MultiDex添加到gradle文件以及我的自定义应用程序类中,但这也导致了失败

其他人对我可能做错了什么有什么见解吗?真正有趣的是,这个错误只在用户第一次单击“配置”屏幕按钮时发生。应用程序崩溃后,用户可以重新打开它并正常单击按钮

先谢谢你

更新

我忘了提到Android Monitor在崩溃之前还记录了以下信息:

Rejecting re-init on previously-failed class java.lang.Class<br.com.systemsat.monitriip.activity.ConfigurationActivity>
更新3


我刚刚生成了一个用于测试的apk,但没有显示错误。也许这和调试有关?或者甚至与gradle版本有关?我目前使用的是gradle的最新版本。

尝试更改
getActivity()的
getAplicationContext()


有时GetApplicationContext返回null

getApplicationContext()
更改为
this
如果在发布完整代码时petey的解决方案不起作用,请。您是否尝试过清理构建项目?您应该发布所有代码,而不仅仅是您怀疑的部分。@petey将getApplicationContext()更改为该解决方案不起作用。tynn:Proguard未启用。我的项目有一个proguard-rules.pro文件,但都有注释。阿卡伊茨:我有。我还尝试了从Mac终端进行清洁。那里也没有运气。аааа和马斯克德曼:您希望看到代码的哪些部分?无法共享整个解决方案,因为此代码是我公司的,而不是我的。请看有问题的编辑。我忘了提到一些我认为相关的东西。我不能在那个上下文中调用getActivity()。但按照@petey的建议改成这样也不管用。我想说的是,情况正好相反。如果您想知道上下文之间的区别,请检查这些链接,然后
Rejecting re-init on previously-failed class java.lang.Class<br.com.systemsat.monitriip.activity.ConfigurationActivity>
@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;
}