nmmp icon indicating copy to clipboard operation
nmmp copied to clipboard

启动androidx崩溃问题

Open limaofang opened this issue 2 years ago • 5 comments

                                            Process: com.example.shell, PID: 21636
                                                                                                java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: No implementation found for void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner) (tried Java_androidx_lifecycle_DefaultLifecycleObserver_onCreate and Java_androidx_lifecycle_DefaultLifecycleObserver_onCreate__Landroidx_lifecycle_LifecycleOwner_2)
                                                                                                	at android.app.ActivityThread.installProvider(ActivityThread.java:7413)
                                                                                                	at android.app.ActivityThread.installContentProviders(ActivityThread.java:6914)
                                                                                                	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6809)
                                                                                                	at android.app.ActivityThread.access$1700(ActivityThread.java:240)
                                                                                                	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2068)
                                                                                                	at android.os.Handler.dispatchMessage(Handler.java:107)
                                                                                                	at android.os.Looper.loop(Looper.java:238)
                                                                                                	at android.app.ActivityThread.main(ActivityThread.java:7798)
                                                                                                	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:512)
                                                                                                	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)
                                                                                                Caused by: androidx.startup.StartupException: java.lang.UnsatisfiedLinkError: No implementation found for void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner) (tried Java_androidx_lifecycle_DefaultLifecycleObserver_onCreate and Java_androidx_lifecycle_DefaultLifecycleObserver_onCreate__Landroidx_lifecycle_LifecycleOwner_2)
                                                                                                	at androidx.startup.AppInitializer.doInitialize(Native Method)
                                                                                                	at androidx.startup.AppInitializer.discoverAndInitialize(Native Method)
                                                                                                	at androidx.startup.AppInitializer.discoverAndInitialize(Native Method)
                                                                                                	at androidx.startup.InitializationProvider.onCreate(Native Method)
                                                                                                	at android.content.ContentProvider.attachInfo(ContentProvider.java:2102)
                                                                                                	at android.content.ContentProvider.attachInfo(ContentProvider.java:2076)
                                                                                                	at android.app.ActivityThread.installProvider(ActivityThread.java:7408)
                                                                                                	at android.app.ActivityThread.installContentProviders(ActivityThread.java:6914) 
                                                                                                	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6809) 
                                                                                                	at android.app.ActivityThread.access$1700(ActivityThread.java:240) 
                                                                                                	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2068) 
                                                                                                	at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                                                	at android.os.Looper.loop(Looper.java:238) 
                                                                                                	at android.app.ActivityThread.main(ActivityThread.java:7798) 
                                                                                                	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:512) 
                                                                                                	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995) 
                                                                                                Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner) (tried Java_androidx_lifecycle_DefaultLifecycleObserver_onCreate and Java_androidx_lifecycle_DefaultLifecycleObserver_onCreate__Landroidx_lifecycle_LifecycleOwner_2)
                                                                                                	at androidx.lifecycle.DefaultLifecycleObserver.onCreate(Native Method)
                                                                                                	at androidx.lifecycle.DefaultLifecycleObserverAdapter.onStateChanged(Native Method)
                                                                                                	at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(Native Method)
                                                                                                	at androidx.lifecycle.LifecycleRegistry.addObserver(Native Method)
                                                                                                	at androidx.emoji2.text.EmojiCompatInitializer.delayUntilFirstResume(Native Method)
                                                                                                	at androidx.emoji2.text.EmojiCompatInitializer.create(Native Method)
                                                                                                	at androidx.emoji2.text.EmojiCompatInitializer.create(Unknown Source:73)
                                                                                                	at androidx.startup.AppInitializer.doInitialize(Native Method) 
                                                                                                	at androidx.startup.AppInitializer.discoverAndInitialize(Native Method) 
                                                                                                	at androidx.startup.AppInitializer.discoverAndInitialize(Native Method) 
                                                                                                	at androidx.startup.InitializationProvider.onCreate(Native Method) 
                                                                                                	at android.content.ContentProvider.attachInfo(ContentProvider.java:2102) 
                                                                                                	at android.content.ContentProvider.attachInfo(ContentProvider.java:2076) 
                                                                                                	at android.app.ActivityThread.installProvider(ActivityThread.java:7408) 
                                                                                                	at android.app.ActivityThread.installContentProviders(ActivityThread.java:6914) 
                                                                                                	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6809) 
                                                                                                	at android.app.ActivityThread.access$1700(ActivityThread.java:240) 
                                                                                                	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2068) 
                                                                                                	at android.os.Handler.dispatchMessage(Handler.java:107) 
                                                                                                	at android.os.Looper.loop(Looper.java:238) 
                                                                                                	at android.app.ActivityThread.main(ActivityThread.java:7798) 
                                                                                                	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:512) 
                                                                                                	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995) 

该如何处理?

limaofang avatar Oct 12 '23 10:10 limaofang

找之前的issue有相关讨论, 要加固androidx相关,自己改so加载位置到自定义application里。顺便说一句加固开源库没任何意义,还能让人简单找到opcode映射表。这种跟那些隐藏dex的加固有很大的不同,弄清楚基本原理再使用。

maoabc avatar Oct 12 '23 11:10 maoabc

找之前的issue有相关讨论, 要加固androidx相关,自己改so加载位置到自定义application里。顺便说一句加固开源库没任何意义,还能让人简单找到opcode映射表。这种跟那些隐藏dex的加固有很大的不同,弄清楚基本原理再使用。

有参考的代码可以看看吗?

limaofang avatar Oct 13 '23 02:10 limaofang

找之前的issue有相关讨论, 要加固androidx相关,自己改so加载位置到自定义application里。顺便说一句加固开源库没任何意义,还能让人简单找到opcode映射表。这种跟那些隐藏dex的加固有很大的不同,弄清楚基本原理再使用。

有参考的代码可以看看吗?

可以看以前代码,最初就是在自定义application里注入的静态初始化方法里System.loadLibrary("libnmmp.so")。后面更新才在NativeUtils里加载so,目前只是推测原因(两个类互相引用,类加载时导致静态初始化方法还没执行就提前调用本地方法,然后报错找到不到native方法)。简单解决就是忽略一些类,打断这种循环引用,或者前面提到的自定义appliction里加载so

maoabc avatar Oct 13 '23 09:10 maoabc