从另一个类调用Alertdialog时应用程序崩溃

时间:2017-11-10 12:56:35

标签: java android alert alertdialog

奇怪的是,只有当我构建它时,应用程序才会崩溃,但如果我从android studio运行它,警报就可以正常工作。

这是非活动类

public class Rateapp {

public static void onexit(Context context){
    AlertDialog.Builder alert = new AlertDialog.Builder(context);
    alert.setTitle("Are you sure to Exit ?");
    alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            System.exit(0);
        }
    });
    alert.setCancelable(true);
    alert.setNegativeButton("No", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {

        }
    });
    alert.create().show();
}

}

现在我想从mainActivity

中的onBackPressed调用onexit方法
public class first_java extends AppCompatActivity  {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first);

    }

    @Override
    public void onBackPressed() {
        Rateapp.onexit(this);
    }
    }

我不知道这是否会提供帮助,但无论如何这里都是styles.xml

    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">

编辑:我发现当proguard被激活时,应用程序会崩溃,如果不能正常运行,我该怎么办?

3 个答案:

答案 0 :(得分:1)

如果没有明确设置为

,Proguard会删除几个类

-keepclassmembers ....

添加这些并检查它是否仍在崩溃

keep class  android.content.** { *; }
keep class  android.support.v7.** { *; }

答案 1 :(得分:0)

您能否确认您是否能够在设备上安装应用并启动应用程序崩溃?如果是,那么您可能已收到错误日志,可以将其粘贴到此处。

答案 2 :(得分:0)

  • 添加此super.onBackPressed();您必须添加此

    @Override
    public void onBackPressed() {
      super.onBackPressed();
        Rateapp.onexit(getApplicationContext());
    }