当我开始一个新意图时,我的应用程序崩溃了

时间:2017-05-05 06:33:30

标签: java android android-studio

当我启动一个新的Intent并且它没有在控制台中显示任何错误时,我的应用程序崩溃了。

这就是我启动意图的方式

Button login_button = (Button) findViewById(R.id.register_request_button);
        login_button.setOnClickListener((View v) -> {
            Intent intent = new Intent(v.getContext(), RegistrationForm.class);
            startActivity(intent);
        });

以上代码以前工作正常,但突然之后我做了一些修改,例如通过在我的gardle

中添加以下内容来启用lambda
jackOptions {
            enabled true
        }

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

他们在android studio website

中提到的方式相同

我尝试删除它们并将lambda代码更改为旧式并且没有解决错误。

我做了多个cmd + z(撤消)。他们可以成为问题的原因吗?

我的主要问题是,可能导致此问题的原因是什么?

注意:我确实在清单

中添加了RegistrationForm

2 个答案:

答案 0 :(得分:3)

您对意图的lambda约定是正确的。 您现在不应该使用JACK,因为它现在已在Android studio 2.4预览版中弃用或替换

https://android-developers.googleblog.com/2017/04/java-8-language-features-support-update.html

或者您也可以使用retrolambda,因为数据绑定不支持插孔。

对于您的问题:我的主要问题是,可能导致此问题的原因是什么?

检查日志以查找应用程序崩溃的原因 正如你所说,你已经在android清单中定义了它,这不会成为一个问题。

检查视图是否为null(可能没有正确引用)

我不认为构建过程有任何问题,因为应用程序在运行时崩溃。

分享您的登录信息。

答案 1 :(得分:-1)

试试这个

  button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(),RegistrationForm.class);
                    startActivity(intent);
            }
        });