Qihoo360 / RePlugin

RePlugin - A flexible, stable, easy-to-use Android Plug-in Framework
Apache License 2.0
7.25k stars 1.52k forks source link

Android14无法释放插件内部的so文件 #1067

Closed byteteacher closed 8 months ago

byteteacher commented 8 months ago

问题详细描述 Detailed description of the problem

android14设备在安装完插件时,app_p_n下没有libmmkv.so,导致在使用功能时崩溃,报错:java.lang.UnsatisfiedLinkError: com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.safetask/app_p_a/1861391303.jar"],nativeLibraryDirectories=[/data/user/0/com.safetask/app_p_n/1861391303, /system/lib, /system_ext/lib]]] couldn't find "libmmkv.so"

复现问题步骤 Steps to reproduce the problem

  1. 安装插件
  2. 调用插件,mmkv初始化时

其它重要信息 Other important information

replugin-host-lib/gradle Version: 2.3.4/3.4.1 rePlugin-plugin-lib/gradle Version: 2.3.4/3.4.1

Android API Version: Android 手机型号&ROM(Phone model & ROM): MANUFACTURER = realme MODEL = RMX3888 DISPLAY = RMX3888_14.0.0.229(CN01) CPU_ABI = armeabi-v7a CPU_ABI2 = armeabi HARDWARE = qcom DEVICE = RE5C37 VERSION.RELEASE = 14 VERSION.SDK_INT = 34

Logcat上下文 Logcat context

java.lang.UnsatisfiedLinkError: com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.sgcc.pda.safetask/app_p_a/-78500143.jar"],nativeLibraryDirectories=[/data/user/0/com.sgcc.pda.safetask/app_p_n/-78500143, /system/lib, /system_ext/lib]]] couldn't find "libmmkv.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1078)
at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
at java.lang.System.loadLibrary(System.java:1661)
at com.tencent.mmkv.MMKV.doInitialize(MMKV.java:193)
at com.tencent.mmkv.MMKV.initialize(MMKV.java:180)
at com.tencent.mmkv.MMKV.initialize(MMKV.java:134)
at com.sgcc.pda.waitupload.util.MMKVUtils.initMMKV(MMKVUtils.java:42)
at com.sgcc.pda.waitupload.manager.WaitUploadManager.init(WaitUploadManager.java:60)
at com.sgcc.pda.waituploadplugin.application.mApplication.onCreate(mApplication.java:31)
at com.qihoo360.replugin.component.app.PluginApplicationClient.callOnCreate(PluginApplicationClient.java:224)
at com.qihoo360.loader2.Plugin.callAppLocked(Plugin.java:935)
at com.qihoo360.loader2.Plugin.callApp(Plugin.java:908)
at com.qihoo360.loader2.Plugin.load(Plugin.java:438)
at com.qihoo360.loader2.PmBase.loadPlugin(PmBase.java:1104)
at com.qihoo360.loader2.PmBase.loadAppPlugin(PmBase.java:1089)
at com.qihoo360.loader2.PluginCommImpl.query(PluginCommImpl.java:141)
at com.qihoo360.i.Factory.query(Factory.java:162)
at com.qihoo360.replugin.RePlugin.fetchBinder(RePlugin.java:470)
at com.sgcc.pda.mdrh.zoom.binderutils.PluginBinderUtil.bindBinder(PluginBinderUtil.java:46)
at com.sgcc.pda.mdrh.utils.CommLogBindUtils.bindInit(CommLogBindUtils.java:27)
at com.sgcc.pda.mdrh.ui.activity.WelcomeActivity.initData(WelcomeActivity.java:183)
at com.sgcc.pda.mdrh.ui.activity.BaseActivity.onCreate(BaseActivity.java:113)
at android.app.Activity.performCreate(Activity.java:8757)
at android.app.Activity.performCreate(Activity.java:8729)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1475)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3985)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4161)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:114)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:144)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:101)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2627)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:368)
at android.app.ActivityThread.main(ActivityThread.java:8815)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
byteteacher commented 8 months ago

升级最新3.0.0Replugin也崩溃。

byteteacher commented 8 months ago

已解决,android14新手机获取不到支持的32为abis,自己手动给他赋值就没问题了