Qihoo360 / RePlugin

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

宿主加载插件报错:android.content.res.Resources$NotFoundException: Resource ID #0x7f070000 type #0x12 is not valid #831

Open SilasGao opened 5 years ago

SilasGao commented 5 years ago

正常加载插件

if (RePlugin.isPluginInstalled("FaceDetect")) { Toast.makeText(this, "isPluginInstalled", Toast.LENGTH_SHORT).show() var intent: Intent = RePlugin.createIntent( "FaceDetect", "com.ylzinfo.facedetect.AliveCheckActivity" ) RePlugin.startActivityForResult(this, intent, 33) } else Toast.makeText(this, "You must install FaceDetect first!", Toast.LENGTH_SHORT).show()

复现问题步骤 Steps to reproduce the problem

其它重要信息 Other important information

replugin-host-lib/gradle Version:4.6 rePlugin-plugin-lib/gradle Version:6.1.1

Android API Version: Android 手机型号&ROM(Phone model & ROM): 魅族5.1 网易mumu模拟器

Logcat上下文

06-10 11:01:08.505 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: startActivityForResult: intent=Intent { cmp=FaceDetect/com.ylzinfo.facedetect.AliveCheckActivity (has extras) } requestCode=33 options=null 06-10 11:01:08.513 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: start activity with startActivityForResult: intent=Intent { cmp=FaceDetect/com.ylzinfo.facedetect.AliveCheckActivity (has extras) } 06-10 11:01:08.517 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PStatusC.getStatus(): ps is null. pn=FaceDetect 06-10 11:01:08.518 1993-1993/com.ylzinfo.didiplugdemo I/RePlugin.ws001: loadLocked(): Ready to lock! logtag = try1; pn = FaceDetect 06-10 11:01:08.526 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: get package archive info, pi=PackageInfo{c3a002c com.ylzinfo.facedetect} 06-10 11:01:08.528 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: activity=com.ylzinfo.facedetect.AliveCheckActivity 06-10 11:01:08.528 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: activity=com.alipay.zoloz.toyger.workspace.ToygerActivity 06-10 11:01:08.540 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: 从 apk 中解析 xml 耗时 11 毫秒 06-10 11:01:08.540 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: 解析插件 FaceDetect : /data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar AndroidManifest: <?xml version="1.0" encoding="utf-8"?>

06-10 11:01:08.544 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ms-parser: 打印 Activity - IntentFilter 06-10 11:01:08.544 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ms-parser: key:com.ylzinfo.facedetect.AliveCheckActivity; val:[{action:{android.intent.action.MAIN,}, category:{android.intent.category.LAUNCHER,}}, ] 06-10 11:01:08.544 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ms-parser: key:com.alipay.zoloz.toyger.workspace.ToygerActivity; val:[] 06-10 11:01:08.544 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: mApplication: ApplicationInfo{ec7aaf5 com.ylzinfo.facedetect} 06-10 11:01:08.546 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: get binder = android.os.BinderProxy@4e52fe9 06-10 11:01:08.546 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: proxy fetch binder: binder=android.os.BinderProxy@4e52fe9 06-10 11:01:08.547 1993-1993/com.ylzinfo.didiplugdemo D/ws001: --- 调整插件中组件的进程 BEGIN --- 06-10 11:01:08.547 1993-1993/com.ylzinfo.didiplugdemo D/ws001: --- 调整插件中组件的进程 END --- com.ylzinfo.didiplugdemo 06-10 11:01:08.547 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.task-affinity: useDefault = true 06-10 11:01:08.548 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: get resources for app, r=android.content.res.Resources@f98a08a 06-10 11:01:08.548 1993-1993/com.ylzinfo.didiplugdemo I/dex: load /data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar ... 06-10 11:01:08.553 1993-1993/com.ylzinfo.didiplugdemo I/dex: load /data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar = com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar"],nativeLibraryDirectories=[/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_libs/FaceDetect-10-10-1, /vendor/lib, /system/lib]]] 06-10 11:01:08.553 1993-1993/com.ylzinfo.didiplugdemo D/createClassLoader: --无需释放DEX, (plugin=FaceDetect, version=1), use:5, process:com.ylzinfo.didiplugdemo 06-10 11:01:08.554 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: pkg context=com.qihoo360.loader2.PluginContext@9a296fb 06-10 11:01:08.555 1993-1993/com.ylzinfo.didiplugdemo I/RePlugin.PluginManagerClient: updateUsedIfNeeded: pi.isUsed == used, ignore. used=true; pn=FaceDetect 06-10 11:01:08.556 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: Plugin.loadEntryLocked(): Load entry, info=PInfo { <FaceDetect:1(4)> [P-N] [DEX_EXTRACTED] processes=[] js={"pkgname":"com.ylzinfo.facedetect","ali":"FaceDetect","name":"FaceDetect","low":10,"high":10,"ver":1,"verv":2814792716779521,"path":"\/data\/user\/0\/com.ylzinfo.didiplugdemo\/app_plugins_v3\/FaceDetect-10-10-1.jar","type":1,"frm_ver":4} dex=/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_odex/FaceDetect-10-10-1.dex nlib=/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_libs/FaceDetect-10-10-1 } 06-10 11:01:08.557 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: loadEntryMethod exception 06-10 11:01:08.558 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: found entry: className=com.qihoo360.replugin.Entry, loader=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar"],nativeLibraryDirectories=[/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_libs/FaceDetect-10-10-1, /vendor/lib, /system/lib]]] 06-10 11:01:08.563 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: Loader.invoke2(): plugin=/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar, plugin.binder.cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar"],nativeLibraryDirectories=[/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_libs/FaceDetect-10-10-1, /vendor/lib, /system/lib]]] 06-10 11:01:08.563 1993-1993/com.ylzinfo.didiplugdemo I/RePlugin.ws001: load /data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar 89977624 c=3 rc=true delta=45 06-10 11:01:08.563 1993-1993/com.ylzinfo.didiplugdemo I/RePlugin.ws001: loadLocked(): Unlock! logtag = try1; pn = FaceDetect 06-10 11:01:08.564 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PAC.create(): Create and load Application. cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar"],nativeLibraryDirectories=[/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_libs/FaceDetect-10-10-1, /vendor/lib, /system/lib]]] 06-10 11:01:08.565 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PAC.callAttachBaseContext(): Call attachBaseContext(), cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar"],nativeLibraryDirectories=[/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_libs/FaceDetect-10-10-1, /vendor/lib, /system/lib]]] 06-10 11:01:08.565 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PAC.callOnCreate(): Call onCreate(), cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar"],nativeLibraryDirectories=[/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_libs/FaceDetect-10-10-1, /vendor/lib, /system/lib]]] 06-10 11:01:08.566 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.theme: intent.putExtra(com.ylzinfo.facedetect.AliveCheckActivity, 0); 06-10 11:01:08.568 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PStatusC.getStatus(): ps is null. pn=FaceDetect 06-10 11:01:08.568 1993-1993/com.ylzinfo.didiplugdemo I/RePlugin.ws000: loadLocked(): Initialized, is loaded = true 06-10 11:01:08.568 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.task-affinity: originTaskAffinity is com.ylzinfo.facedetect 06-10 11:01:08.568 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PACM: alloc registered container=com.ylzinfo.didiplugdemo.loader.a.ActivityN1NRNTS2 06-10 11:01:08.568 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PACM: bindActivity: lookup activity container: container=com.ylzinfo.didiplugdemo.loader.a.ActivityN1NRNTS2 06-10 11:01:08.568 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PACM: eval plugin FaceDetect, target=com.ylzinfo.facedetect.AliveCheckActivity, container=com.ylzinfo.didiplugdemo.loader.a.ActivityN1NRNTS2 06-10 11:01:08.568 1993-1993/com.ylzinfo.didiplugdemo I/RePlugin.ws001: alloc success: container=com.ylzinfo.didiplugdemo.loader.a.ActivityN1NRNTS2 plugin=FaceDetect activity=com.ylzinfo.facedetect.AliveCheckActivity

--------- beginning of system

06-10 11:01:08.629 1993-2024/com.ylzinfo.didiplugdemo W/EGL_emulation: eglSurfaceAttrib not implemented 06-10 11:01:08.629 1993-2024/com.ylzinfo.didiplugdemo W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xaf21b620, error=EGL_SUCCESS 06-10 11:01:08.631 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: found: ActivityState {container=com.ylzinfo.didiplugdemo.loader.a.ActivityN1NRNTS2 state=restored plugin=FaceDetect activity=com.ylzinfo.facedetect.AliveCheckActivity size=0} 06-10 11:01:08.631 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PACM: loadActivityClass in=com.ylzinfo.didiplugdemo.loader.a.ActivityN1NRNTS2 target=com.ylzinfo.facedetect.AliveCheckActivity plugin=FaceDetect 06-10 11:01:08.632 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PStatusC.getStatus(): ps is null. pn=FaceDetect 06-10 11:01:08.632 1993-1993/com.ylzinfo.didiplugdemo I/RePlugin.ws000: loadLocked(): Initialized, is loaded = true 06-10 11:01:08.632 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PACM: loadActivityClass, plugin activity loader: in=com.ylzinfo.didiplugdemo.loader.a.ActivityN1NRNTS2 activity=com.ylzinfo.facedetect.AliveCheckActivity 06-10 11:01:08.632 1993-1993/com.ylzinfo.didiplugdemo D/RePlugin.ws001: PACM: loadActivityClass, plugin activity loader: c=class com.ylzinfo.facedetect.AliveCheckActivity, loader=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3/FaceDetect-10-10-1.jar"],nativeLibraryDirectories=[/data/user/0/com.ylzinfo.didiplugdemo/app_plugins_v3_libs/FaceDetect-10-10-1, /vendor/lib, /system/lib]]] 06-10 11:01:08.638 1993-1993/com.ylzinfo.didiplugdemo D/AndroidRuntime: Shutting down VM 06-10 11:01:08.648 1993-1993/com.ylzinfo.didiplugdemo E/AndroidRuntime: FATAL EXCEPTION: main Process: com.ylzinfo.didiplugdemo, PID: 1993 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ylzinfo.didiplugdemo/com.ylzinfo.didiplugdemo.loader.a.ActivityN1NRNTS2}: android.content.res.Resources$NotFoundException: Resource ID #0x7f070000 type #0x12 is not valid at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2443) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2503) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5529) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635) Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f070000 type #0x12 is not valid at android.content.res.Resources.loadXmlResourceParser(Resources.java:2779) at android.content.res.Resources.getLayout(Resources.java:1165) at android.view.LayoutInflater.inflate(LayoutInflater.java:421) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393) at android.app.Activity.setContentView(Activity.java:2175) at com.ylzinfo.facedetect.AliveCheckActivity.onCreate(AliveCheckActivity.java:27) at android.app.Activity.performCreate(Activity.java:6278) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2396) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2503)  at android.app.ActivityThread.-wrap11(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5529)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:745)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:635)  06-10 11:01:08.691 1993-1993/com.ylzinfo.didiplugdemo I/Process: Sending signal. PID: 1993 SIG: 9

SilasGao commented 5 years ago

rePlugin-plugin-lib/gradle Version:5.1.1 上面写错了

lyongfly commented 5 years ago

这个问题我也遇到了,将gradle 插件版本改为 3.1.4 后解决
classpath 'com.android.tools.build:gradle:3.1.4'

HeroKince commented 5 years ago

这个问题我也遇到了,将gradle 插件版本改为 3.1.4 后解决 classpath 'com.android.tools.build:gradle:3.1.4'

是的,宿主和插件的版本要一致