ShareCompat IntentBuilder 每次在 Android 4 时崩溃

ShareCompat IntentBuilder crashing every time on Android 4

在我的一项活动中,我使用 ShareCompat IntentBuilder 允许用户共享一些文本:

                ShareCompat.IntentBuilder
                    .from(this)
                    .setText("The shared text")
                    .setType("text/plain")
                    .setChooserTitle("Share to")
                    .startChooser();

在 Android 5 及更高版本上,这按预期工作,但在 Android 4 上,我每次都会遇到以下崩溃:

android.app.SuperNotCalledException: Activity {android/com.android.internal.app.ChooserActivity} did not call through to super.onStop()
at android.app.Activity.performStop(Activity.java:4606)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3071)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3130)
at android.app.ActivityThread.access00(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1180)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

不知道为什么会这样,如有任何帮助将不胜感激,谢谢!

嗯...我将您的代码粘贴到一个新的应用程序中,运行 它在 4.0.3 模拟器上,然后打开了 Messenger 应用程序。这是 4.0.3 模拟器上唯一知道如何共享文本的应用程序。 LogCat 中有一个堆栈跟踪,其中 ChooserActivity 泄漏了一个 IntentReceiver,但我不明白你的 onStop() 问题。

您的代码没有任何错误。我的猜测是您的模拟器图像设置存在一些问题。您可以尝试创建一个新图像,确保您拥有来自 Android SDK 管理器的所有最新更新(尽管该图像可能已经有一段时间没有更新了)。

如果您可以通过示例项目始终如一地重现问题,因为您是在模拟器上获取它,file an issue,请附加您的项目并显示堆栈跟踪。

除此之外,我真的怀疑你会在真正的 Android 设备上遇到这个问题。