android - API 27 中 startActivityForResult 后崩溃

标签 android android-support-library startactivityforresult

更新到 API 27 和支持库 27.0.2 后,我突然在 Crashlytics 中得到了很多这样的堆栈跟踪:

Fatal Exception: java.lang.IllegalArgumentException
    at android.os.Parcel.readException(Parcel.java:1544)
    at android.os.Parcel.readException(Parcel.java:1493)
    at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:5108)
    at android.app.Activity.isTopOfTask(Activity.java:5688)
    at android.app.Activity.startActivityForResult(Activity.java:3973)
    at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(Source:54)
    at android.support.v4.app.FragmentActivity.startActivityForResult(Source:67)

我这样调用它:

ActivityOptions options = ActivityOptions.makeCustomAnimation(activity, R.anim.slide_in_from_right, R.anim.fade_out);
startActivityForResult( intent, REQ_ACTION, options.toBundle());

我无法阅读源代码,因为它尚未发布。我什至尝试替换并使用 android-26 代码,但它是不同的。

上面的调用有一个警告,说 BaseFragmentActivityApi16.startActivityForResult 只能从同一个库组调用,所以我使用 ActivityCompat 修复了它,但我认为这不能解决崩溃问题。

这是平台问题还是我可以解决这个问题?

编辑

if (Build.VERSION.SDK_INT >= 21) {
    ActivityOptions options = ActivityOptions.makeCustomAnimation(activity, R.anim.slide_in_from_right, R.anim.fade_out);
    startActivityForResult(intent, REQ_ACTION, options.toBundle());
} else {
    ActivityOptions options = ActivityOptions.makeCustomAnimation(activity, R.anim.slide_in_from_right, R.anim.fade_out);
    ActivityCompat.startActivityForResult(this, intent, REQ_ACTION, options.toBundle());
}

如果我根据评论中的链接将其更改为上面的内容,Android Studio 会像上面那样提示。这可能与问题有关。

最佳答案

你可以试试这个代码。

startActivityForResult( intent, REQ_ACTION)
overridePendingTransition(R.anim.slide_in_from_right,  R.anim.fade_out);

关于android - API 27 中 startActivityForResult 后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639597/

相关文章:

android - 从相机获取全尺寸图像不适用于 Galaxy S

android - 数据绑定(bind) BR 未显示所有变量名称

android - 如何选择Android支持库Revision?

android - 如何正确使用 registerForActivityResult?获取 "LifecycleOwners must call register before they are STARTED"

android - ActivityResultLauncher 传递自定义请求代码

android - 如何将 HTML 文件(存储在 Assets 中)转换为 android 中的图像?

java - 从 mysql select 获取计数结果并解析到 TextView

android - 对 v4 和 v13 支持库感到困惑

android - LocationSettingsRequest 返回 0 到 onActivityResult 即使点击确定