簡體   English   中英

三星設備上的奇怪崩潰

[英]Weird crash on samsung devices

三星手機中有一個奇怪的例外,特別是Galaxy S7 Edge,我們在Fabric崩潰報告中注意到了這一點:

Fatal Exception: java.lang.RuntimeException: Unable to instantiate receiver com.someapp: java.lang.ClassNotFoundException: Didn't find class "com.someapp" on path: DexPathList[[zip file "/data/app/com.someapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.someapp-1/lib/arm, /system/fake-libs, /data/app/com.someapp-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
   at android.app.ActivityThread.handleReceiver(ActivityThread.java:3331)
   at android.app.ActivityThread.-wrap20(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1734)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:154)
   at android.app.ActivityThread.main(ActivityThread.java:6688)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

Caused by java.lang.ClassNotFoundException: Didn't find class "com.someapp" on path: DexPathList[[zip file "/data/app/com.someapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.someapp-1/lib/arm, /system/fake-libs, /data/app/com.someapp-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
   at android.app.ActivityThread.handleReceiver(ActivityThread.java:3326)
   at android.app.ActivityThread.-wrap20(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1734)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:154)
   at android.app.ActivityThread.main(ActivityThread.java:6688)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

作為用戶的反饋,此錯誤僅在應用程序處於后台並且沒有與之交互時發生,我認為問題在於三星的設備rom嘗試最小化后台任務或將它們放入特殊內存並且我們的應用程序是沒准備好,這發生了。

關鍵是異常並沒有指向應用程序的任何類,所以我們可以跟蹤問題,如果有人遇到過這個問題請大家幫忙!

試試這個..它的工作對我來說,我在不同的設備上有同樣的問題

compile 'com.android.support:multidex:1.0.1'添加到您的依賴項。

確保在defaultConfig中放入multiDexEnabled true

然后在Application類中添加它

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

來自Marshmallow谷歌推出了一項名為Doze的新功能/模式。 根據官方文件

從Android 6.0(API級別23)開始,Android引入了兩項省電功能,通過管理設備未連接電源時應用程序的行為方式,延長了用戶的電池續航時間。 當設備長時間不使用時,Doze會通過推遲應用程序的后台CPU和網絡活動來減少電池消耗。 App Standby推遲用戶最近未與之交互的應用的后台網絡活動。

你可以在這里詳細閱讀。

Nougat ,它已經更加優化。

我認為問題實際上是Doze功能。 我不知道是否有任何方法可以阻止這種情況,但您可以手動執行此操作。 您可以在這里這里查看更多細節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM