java.lang.运行时异常在android.app.活动线程.执行启动活动

6rqinv9w  于 2023-02-20  发布在  Android
关注(0)|答案(6)|浏览(103)

在Google Play控制台中,java.lang.RuntimeException出现时不带"原因:"
以下日志是从Google Play控制台崩溃日志复制的。
这是为了:安卓8.0、安卓8.1、安卓7.0、安卓7.1

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3030)
  at android.app.ActivityThread.-wrap11 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)
  at android.os.Handler.dispatchMessage (Handler.java:105)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6938)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

请你帮我一下!

9vw9lbht

9vw9lbht1#

ActivityThread.java表示它是updatePendingConfiguration()或registerOnActivityPausedListener(),因此它要么因.onPause()而失败,要么无法使用正确的参数调用super()方法-或者应用的Configuration有问题。
我很乐意解释如何解决这个问题,但是这个问题缺少抛出异常的代码,解决这个问题的最好方法可能是使用类似Firebase Crashlytics的代码,以便用户可以看到其确切来源以及受影响的设备(如果这应该是具体的)。我几乎怀疑这可能是由于启动一个Activity与应用程序的Context,同时不设置标志Intent.FLAG_ACTIVITY_NEW_TASK(参见:this answer)。

qncylg1j

qncylg1j2#

通过分析日志,可以做出以下假设,
在项目中使用的任何外部库中都将引发异常

    • 解释:基本上,该异常是由ActivityThread.java引发的,更具体地说,是2955行的performLaunchActivity()方法引发的。由于堆栈跟踪不包括应用程序的任何internal**class,因此我们可以假设该异常是在项目中使用的库附带的externalclass中引发的。

如果是这种情况,可以执行以下解决方法来解决此问题-

  • 查看所有库依赖项并标记可疑项
  • 如果您使用的是外部库中的自定义视图(如AdView),则该库最有可能导致此崩溃
  • 将所有第三方库升级到最新版本,因为在最新操作系统中会导致崩溃
  • 查看官方文档以正确实现这些库。例如,SDK网站的疑难解答页面可能有此问题的解决方案。例如,Dynamsoft Camera SDK已经解决了此问题here
  • 查看库的问题跟踪器以了解此问题。例如,Android-Permission库的closed issue具有完全相同的日志。
  • 如果您的项目是react native,则会有关于它的长时间讨论here
    • 建议**:我想再添加几行@Martin Zeitler关于使用Crashlytics的建议。

我推荐你使用Customize your Firebase Crashlytics crash reports.因为,有时候仅仅堆栈跟踪不足以重现崩溃。
通过使用自定义功能,您将能够获得,

  • 用户身份
  • 应用程序的状态
  • 崩溃前执行的事件

这肯定会帮助你再生崩溃并修复它。

llycmphe

llycmphe3#

我也遇到了同样的错误。我解决了它,也许它能帮助一些人:
问题出在我的land/tooldbariderxml中。我已经迁移到Androidx库。我通过更改有问题的xml文件解决了我的问题。

请勿用途:<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true">.......

</android.support.v4.widget.DrawerLayout>

改为用途:<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true">.......

</androidx.drawerlayout.widget.DrawerLayout>

bnl4lu3b

bnl4lu3b4#

简介

因为人们说:

did you resolve this issue? It's a rising crash in my app as well – Bao Le Feb 6 at 8:36 
did anybody resolve this issue? – AwaisMajeed Feb 9 at 13:15 
Also happening to me. =( – masterlopau Feb 26 at 1:51
do this solved? – Vengat Jul 19 at 5:55

你有额外的原因日志吗?这会有很大的帮助。

这是您的崩溃日志:

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3030)
  at android.app.ActivityThread.-wrap11 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)
  at android.os.Handler.dispatchMessage (Handler.java:105)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6938)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

与此崩溃日志比较(相同的行号和代码流):

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3030)
  at android.app.ActivityThread.-wrap11 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)
  at android.os.Handler.dispatchMessage (Handler.java:105)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6938)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

此行不同:

at java.lang.reflect.Method.invoke (Method.java)

以及:

at java.lang.reflect.Constructor.newInstance0 (Native Method)

和额外原因日志:

Caused by: android.support.v4.app.i$b: 
  at android.support.v4.app.i.instantiate (Fragment.java:386)
  at android.support.v4.app.k.a (FragmentContainer.java:33)
  at android.support.v4.app.s.a (FragmentState.java:79)
  at android.support.v4.app.o.a (FragmentManager.java:3080)
  at android.support.v4.app.l.a (FragmentController.java:152)
  at android.support.v4.app.j.onCreate (FragmentActivity.java:330)
  at host.exp.exponent.experience.f.onCreate (ReactNativeActivity.java:140)
  at host.exp.exponent.experience.a.onCreate (BaseExperienceActivity.java:79)
  at host.exp.exponent.experience.ExperienceActivity.onCreate (ExperienceActivity.java:160)
  at host.exp.exponent.experience.ShellAppActivity.onCreate (ShellAppActivity.java:22)
  at android.app.Activity.performCreate (Activity.java:7174)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1220)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2908)
Caused by: java.lang.reflect.InvocationTargetException: 
  at java.lang.reflect.Constructor.newInstance0 (Native Method)
  at java.lang.reflect.Constructor.newInstance (Constructor.java:334)
  at android.support.v4.app.i.instantiate (Fragment.java:364)
Caused by: java.lang.IllegalStateException: 
  at abi30_0_0.host.exp.exponent.modules.api.screens.Screen$ScreenFragment.<init> (Screen.java:19)
    • 注意android.support.v4.app**行处。

参见Android standalone app randomly crashes on app open

修复

www.example.com类软件包,或具有 * Compat后缀android.support class packages, or have a *Compat suffix

(1)AndroidX

(i)这个问题有一个miriad的原因,从我的互联网搜索。一个常见的原因似乎是使用android.support class packages,或有一个*Compat suffix审查build.gradle文件android.support.v4等...
(ii)因为 * 有时 * 它不会发生在测试中,只有部署,我猜android.support.v4等...使用的一些设备或API的有问题的设备库。

  • 注:随着Android 9.0 (API level 28)的发布,有一个新版本的支持库称为AndroidX,它是Jetpack的一部分。AndroidX库包含现有的支持库,还包括最新的Jetpack组件。
  • 您可以继续使用支持库。历史工件(版本为27及更早版本,并打包为android.support.*的工件)将在Google Maven上仍然可用。但是,所有新库的开发都将在AndroidX库中进行。
  • 我们建议在所有新项目中使用AndroidX库。您也应该考虑将现有项目迁移到AndroidXSupport Library Setup
  • 支持库现在可通过Google's Maven存储库获得。我们不再支持通过SDK Manager下载库,并且该 * 功能很快将被删除。*
  • 注意:在应用程序项目中包含支持库后,强烈建议您收缩模糊处理优化应用程序以便发布。除了使用模糊处理保护源代码外,收缩还会从应用程序中包含的任何库中移除未使用的类,从而使应用程序的下载大小尽可能小。
  • 注意:如果你包含多个支持库,则最低SDK版本必须是任何指定库所需的最高版本。例如,如果你的应用同时包含v14Preference支持库和v17Leanback库,则你的最低SDK版本必须是17或更高版本。

另见:
Support Library Packages
features

(2)React-原生-筛选

这与react-native-screens相关,他们有解决此问题的变通方案,请查看:
Android crashes nondeterministically when restoring from background-视频。

lymnna71

lymnna715#

这个崩溃可能发生在任何地方。我遇到了同样的问题,根本原因是IllegalArgumentException在覆盖的Fragment#onViewCreated中被错误实现的Comparator抛出。片段本身是在AppCompatActivity#onCreate期间通过FragmentManager添加的。

2020-01-03 15:38:33.001 7860-7860/com.example.app E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.app, PID: 7860
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/MyActivity}: android.view.InflateException: Binary XML file line #9 in com.example.app:layout/my_activity: Binary XML file line #9 in com.example.app:layout/my_activity: Error inflating class fragment
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: android.view.InflateException: Binary XML file line #9 in com.example.app:layout/my_activity: Binary XML file line #9 in com.example.app:layout/my_activity: Error inflating class fragment
     Caused by: android.view.InflateException: Binary XML file line #9 in com.example.app:layout/my_activity: Error inflating class fragment
     Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!
        at java.util.TimSort.mergeLo(TimSort.java:777)
        at java.util.TimSort.mergeAt(TimSort.java:514)
        at java.util.TimSort.mergeCollapse(TimSort.java:441)
        at java.util.TimSort.sort(TimSort.java:245)
        at java.util.Arrays.sort(Arrays.java:1492)
        at java.util.ArrayList.sort(ArrayList.java:1470)
        at java.util.Collections.sort(Collections.java:206)
        at com.example.app.MyFragment.onViewCreated(MyFragment.java:188)
        at androidx.fragment.app.FragmentManagerImpl.ensureInflatedFragmentView(FragmentManagerImpl.java:1144)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:851)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1133)
        at androidx.fragment.app.FragmentManagerImpl.addFragment(FragmentManagerImpl.java:1393)
        at androidx.fragment.app.FragmentManagerImpl.onCreateView(FragmentManagerImpl.java:3205)
        at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:134)
        at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:357)
        at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:336)
        at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1069)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:656)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
2020-01-03 15:38:33.003 7860-7860/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)

当然,如果你只有Google Play游戏机的崩溃报告,要找到根本原因几乎是不可能的。我很幸运地遇到了一个客户事件,让我知道了在哪里查看以及如何重现崩溃。你也可以切换到一个定制的崩溃报告工具,如HockeyApp或Firebase,以查看整个堆栈跟踪。

tjvv9vkg

tjvv9vkg6#

将反模糊处理(mapping.txt)文件上传到GooglePlaystore,阅读下面的文档了解如何生成和上传。
https://support.google.com/googleplay/android-developer/answer/9848633?hl=en

相关问题