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 设备上遇到这个问题。
在我的一项活动中,我使用 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 设备上遇到这个问题。