我的应用程序在 4 到 8.1 的 Android 手机上运行良好。StartActivityForResult 工作正常并调用先前使用目标活动声明的意图,然后在我当前所在的活动中执行代码。不幸的是,在装有 android 9 的手机上,执行应用程序代码的顺序发生了变化。首先,代码在 activity1 中执行,这会导致 NullPointerException - 然后调用意图。Activity2 正在初始化导致空指针异常的对象:
安卓8.1序列:
Activity1 -> startActivityForResult -> Activity2 -> Result Activity1 -> Activity1 code -> OK
安卓9序列
Activity1 -> startActivityForResult -> Activity1 code (NullPointerException) -> (if I comment the code in Activity1 -> Activity 2 -> Result Activity1 )
我尝试更改 gradle 文件,向意图添加标志,设置 android.enableR8 = false,不幸的是没有任何帮助。
Intent i = new Intent(Activity1.this, Activity2.class);
i.putExtra("...", doc.id);
i.putExtra("...", method);
i.putExtra(Activity2.PARAMS, activity2SearchParams);
startActivityForResult(i, ActivityRequestCode.NEW);
targetSdkVersion 27
我想保留 8.1 的执行顺序。请帮忙。