意图和lambda,需要在每次运行之前进行清洁

时间:2018-07-03 14:12:55

标签: android android-studio gradle lambda

我遇到一个令人烦恼的问题,迫使我在每次尝试运行它之前,先执行 Build-> Clean Project 。但这是什么原因(至少对我而言)并不明显。

说明

  1. 我首先运行该应用-它运行正常;
  2. 找到需要更改的内容;
  3. 编码这种变化;
  4. 点击运行-(无论是 run 还是关闭并运行);
  5. 应用正常启动;
  6. 可以很好地填写EditText;
  7. 点击按钮登录:崩溃。

重要提示:可能缩小问题范围)正如您将在下面看到的那样,我有一个调用另一个活动的代码。当我删除创建意图的代码并调用它时,该应用程序运行良好,当我再次添加它时,有时可以运行几次,然后再返回问题。


错误:

java.lang.ClassCastException: com.example.foobar.activity.FooActivity cannot be cast to com.example.foobar.activity.BarActivity
                     at com.example.foobar.activity.-$Lambda$3.$m$0(Unknown Source)
                     at com.example.foobar.activity.-$Lambda$3.onClick(Unknown Source)
                     at android.view.View.performClick(View.java:4848)

代码

FooActivity.java

Button btLogin;
void onCreate(..){ prepareComponents(); }
void prepareComponents(){
    // findViewById
    btLogin.setOnClickListener(v -> onClickLogin());
}

void onClickLogin(){
    // check user info and do other apparently unimportant stuff
    Intent intent = new Intent(FooActivity.this, BarActivity.class);
    startActivity(intent);
    finish();
}

设置

  • Android Studio 2.3.3
  • 3.3级
  • buildToolsVersion“ 25.0.2”
  • compileSdkVersion 25
  • 使用buildTypes
  • 在gradlde中使用一些库
  • 在gradle中使用jackOptions enabled

我的最高等级显示classpath 'com.android.tools.build:gradle:2.3.3'


补充信息:

  • 即时运行已被禁用。
  • 我尝试检查离线工作
  • 使缓存无效/重新启动只是将问题转移到代码的另一部分,但行为相同。更新:问题已消失在第一个屏幕上。
  • 在2个具有不同android版本的不同设备上进行了测试。
  • 从设备上卸载应用程序无济于事-我仍然需要清理项目。
  • 在没有运行清理的情况下运行 process “ Gradle Build Run”会花费更少的时间,但是当我进行清理(它本身不是很耗时)时,下一次运行需要1m30s来进行“ Gradle Build Run “。
  • 我尝试过使用google,但我能找到的最接近的是this question,它似乎是相同的,但并没有真正帮助我。

从我的测试中,注释掉意图和活动调用部分解决的问题,因为我需要调用它,所以不是真的。此外,它在清理后仍可正常工作,因此看起来似乎不是实际的代码问题。可能是什么,我该如何解决?

我不知道还要包含哪些其他信息。请让我知道:)

0 个答案:

没有答案