Qihoo360 / RePlugin

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

加载时无法加载so库,插件中有aar引起 #772

Open hwangjr opened 5 years ago

hwangjr commented 5 years ago

问题详细描述 Detailed description of the problem

加载有aar库的插件时,无法正确加载so库的引用,如果换成其他的jar之类的包含so库的则可以。

复现问题步骤 Steps to reproduce the problem

  1. 编译MainPlugin,并将apk放到app/src/main/assets/plugin/目录
  2. 编译TestHost,并运行

其它重要信息 Other important information

replugin-host-lib/gradle Version: 2.3.1 rePlugin-plugin-lib/gradle Version: 2.3.1

Android API Version:28 Android 手机型号&ROM(Phone model & ROM): NOX

可以重现问题的项目地址为:https://github.com/AndroidKnife/RepluginBug

Logcat上下文 Logcat context


03-06 22:45:28.565 2128-2128/com.dsg.host D/RePlugin.ws001: get package archive info, pi=PackageInfo{4a83d46c com.egrethello}
03-06 22:45:28.565 2128-2128/com.dsg.host D/RePlugin.ws001: activity=com.egrethello.MainActivity
03-06 22:45:28.575 2128-2128/com.dsg.host D/RePlugin.ws001: 从 apk 中解析 xml 耗时 3 毫秒
03-06 22:45:28.575 2128-2128/com.dsg.host D/RePlugin.ws001: 解析插件 com.egrethello : /data/user/0/com.dsg.host/app_p_a/-201027451.jar
    AndroidManifest: 
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="null" android:versionName="1.0" package="com.egrethello">
        <uses-sdk android:minSdkVersion="null" android:targetSdkVersion="null" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <application android:theme="null" android:label="null" android:icon="null" android:debuggable="null" android:allowBackup="null">
            <activity android:theme="null" android:name="com.egrethello.MainActivity" android:launchMode="null" android:screenOrientation="null" android:configChanges="null" android:windowSoftInputMode="null">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    </manifest>
03-06 22:45:28.575 2128-2128/com.dsg.host D/RePlugin.ms-parser: 打印 Activity - IntentFilter
03-06 22:45:28.575 2128-2128/com.dsg.host D/RePlugin.ms-parser: key:com.egrethello.MainActivity; val:[{action:{android.intent.action.MAIN,}, category:{android.intent.category.LAUNCHER,}}, ]
03-06 22:45:28.575 2128-2128/com.dsg.host D/RePlugin.ws001: mApplication: ApplicationInfo{4a830ad8 com.egrethello}
03-06 22:45:28.575 2128-2128/com.dsg.host D/ws001: --- 调整插件中组件的进程 BEGIN ---
03-06 22:45:28.575 2128-2128/com.dsg.host D/ws001: --- 调整插件中组件的进程 END --- com.dsg.host
03-06 22:45:28.575 2128-2128/com.dsg.host D/RePlugin.ws001: get resources for app, r=android.content.res.Resources@4a8045b0
03-06 22:45:28.575 2128-2128/com.dsg.host I/dex: load /data/user/0/com.dsg.host/app_p_a/-201027451.jar ...
03-06 22:45:28.575 2128-2128/com.dsg.host D/dalvikvm: DexOpt: --- BEGIN '-201027451.jar' (bootstrap=0) ---
03-06 22:45:28.685 2128-2128/com.dsg.host D/dalvikvm: DexOpt: --- END '-201027451.jar' (success) ---
03-06 22:45:28.685 2128-2128/com.dsg.host D/dalvikvm: DEX prep '/data/data/com.dsg.host/app_p_a/-201027451.jar': unzip in 2ms, rewrite 113ms
03-06 22:45:28.685 2128-2128/com.dsg.host I/dex: load /data/user/0/com.dsg.host/app_p_a/-201027451.jar = com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.dsg.host/app_p_a/-201027451.jar"],nativeLibraryDirectories=[/data/data/com.dsg.host/app_p_n/-201027451, /system/lib]]]
03-06 22:45:28.685 2128-2128/com.dsg.host D/createClassLoader:  --释放DEX, (plugin=com.egrethello, version=1), use:118, process:com.dsg.host
03-06 22:45:28.685 2128-2128/com.dsg.host D/RePlugin.ws001: pkg context=com.qihoo360.loader2.PluginContext@4a83cb44
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.ws001: sendIntent pr=com.dsg.host intent=Intent { act=com.qihoo360.replugin.pms.ACTION_UPDATE_INFO (has extras) }
03-06 22:45:28.695 2128-2128/com.dsg.host I/RePlugin.PluginInfoUpdater: onReceiveUpdateInfo: in=Intent { act=com.qihoo360.replugin.pms.ACTION_UPDATE_INFO (has extras) }
03-06 22:45:28.695 2128-2128/com.dsg.host I/RePlugin.PluginInfoUpdater: onReceiveUpdateInfo: pn=com.egrethello; setIsUsed=true
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.ws001: Plugin.loadEntryLocked(): Load entry, info=PInfo { <com.egrethello:1(4)> [APK] [DEX_EXTRACTED] processes=[] js={"frm_ver":4,"name":"com.egrethello","path":"\/data\/user\/0\/com.dsg.host\/app_p_a\/-201027451.jar","verv":2814792716779521,"high":10,"ver":1,"used":true,"low":10,"type":11,"pkgname":"com.egrethello"} dex=/data/data/com.dsg.host/app_p_od/-201027451.dex nlib=/data/data/com.dsg.host/app_p_n/-201027451 }
03-06 22:45:28.695 2128-2128/com.dsg.host E/RePlugin.PluginDexClassLoader: loadClass ClassNotFoundException, from PluginClassLoader, cn=com.qihoo360.plugin.com.egrethello.Entry, pluginName=com.egrethello
03-06 22:45:28.695 2128-2128/com.dsg.host E/RePlugin.PluginDexClassLoader: loadClass ClassNotFoundException, from PluginClassLoader, cn=com.qihoo360.plugin.com.egrethello.Entry, pluginName=com.egrethello
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.ws001: loadEntryMethod exception
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.Object
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.Entry
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.ws001: found entry: className=com.qihoo360.replugin.Entry, loader=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.dsg.host/app_p_a/-201027451.jar"],nativeLibraryDirectories=[/data/data/com.dsg.host/app_p_n/-201027451, /system/lib]]]
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.content.Context
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.ClassLoader
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.os.IBinder
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.e
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.f$a
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.b
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.Class
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.app.Activity
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.os.Bundle
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.content.Intent
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.Integer
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.String
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.RePlugin$a
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.os.Parcelable
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.io.Serializable
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.Cloneable
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.model.PluginInfo
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.content.BroadcastReceiver
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.content.ComponentName
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.io.FileDescriptor
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.io.PrintWriter
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.loader.b.PluginLocalBroadcastManager$ProxyLocalBroadcastManagerVar
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.content.IntentFilter
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.loader.p.PluginProviderClient$ProxyRePluginProviderClientVar
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.net.Uri
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.os.Build$VERSION
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.os.CancellationSignal
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.content.ContentValues
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.loader.s.PluginServiceClient$ProxyRePluginServiceClientVar
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.app.Service
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.base.IPC$a
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.d
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.content.ContextWrapper
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.os.Binder
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.os.IInterface
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=library.a
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=library.a$a
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.Entry$1
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.os.Parcel
03-06 22:45:28.695 2128-2128/com.dsg.host D/RePlugin.ws001: Loader.invoke2(): plugin=/data/user/0/com.dsg.host/app_p_a/-201027451.jar, plugin.binder.cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.dsg.host/app_p_a/-201027451.jar"],nativeLibraryDirectories=[/data/data/com.dsg.host/app_p_n/-201027451, /system/lib]]]
03-06 22:45:28.695 2128-2128/com.dsg.host I/RePlugin.ws001: load /data/user/0/com.dsg.host/app_p_a/-201027451.jar 1249843520 c=3 rc=true delta=133
03-06 22:45:28.695 2128-2128/com.dsg.host I/RePlugin.ws001: loadLocked(): Unlock! logtag = try1; pn = com.egrethello
03-06 22:45:28.705 2128-2128/com.dsg.host I/RePlugin-MEMORY: desc=, memory_v_0_0_1, process=, com.dsg.host, totalPss=, 5831, dalvikPss=, 723, nativeSize=, 702, otherPss=, 4406, act=, loadLocked, flag=, Start, pn=, com.egrethello, type=, 3, apk=, 5841850, odex=, 91560, sys_api=, 19
03-06 22:45:28.705 2128-2128/com.dsg.host I/RePlugin-MEMORY: desc=, memory_v_0_0_1, process=, com.dsg.host, totalPss=, 5831, dalvikPss=, 723, nativeSize=, 702, otherPss=, 4406, act=, loadLocked, flag=, End-1, pn=, com.egrethello, type=, 3
03-06 22:45:28.705 2128-2128/com.dsg.host D/RePlugin.ws001: PAC.create(): Create and load Application. cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.dsg.host/app_p_a/-201027451.jar"],nativeLibraryDirectories=[/data/data/com.dsg.host/app_p_n/-201027451, /system/lib]]]
03-06 22:45:28.705 2128-2128/com.dsg.host D/RePlugin.ws001: PAC.callAttachBaseContext(): Call attachBaseContext(), cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.dsg.host/app_p_a/-201027451.jar"],nativeLibraryDirectories=[/data/data/com.dsg.host/app_p_n/-201027451, /system/lib]]]
03-06 22:45:28.705 2128-2128/com.dsg.host D/RePlugin.ws001: PAC.callOnCreate(): Call onCreate(), cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.dsg.host/app_p_a/-201027451.jar"],nativeLibraryDirectories=[/data/data/com.dsg.host/app_p_n/-201027451, /system/lib]]]
03-06 22:45:28.705 2128-2128/com.dsg.host D/RePlugin.theme: intent.putExtra(com.egrethello.MainActivity, 16973831);
03-06 22:45:28.705 2128-2128/com.dsg.host D/RePlugin.ws001: PStatusC.getStatus(): ps is null. pn=com.egrethello
03-06 22:45:28.705 2128-2128/com.dsg.host I/RePlugin.ws000: loadLocked(): Initialized, is loaded = true
03-06 22:45:28.705 2128-2128/com.dsg.host D/RePlugin.task-affinity: originTaskAffinity is com.egrethello
03-06 22:45:28.705 2128-2128/com.dsg.host D/RePlugin.ws001: PACM: alloc empty container=com.dsg.host.loader.a.ActivityN1STNTS2
03-06 22:45:28.705 2128-2128/com.dsg.host D/RePlugin.ws001: PACM: save 2 pref: k=com.dsg.host.loader.a.ActivityN1STNTS2 v=com.egrethello:com.egrethello.MainActivity:1551883528720
03-06 22:45:28.715 2128-2128/com.dsg.host D/RePlugin.ws001: PACM: bindActivity: lookup activity container: container=com.dsg.host.loader.a.ActivityN1STNTS2
03-06 22:45:28.715 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.loader.a.PluginActivity
03-06 22:45:28.715 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.egrethello.MainActivity
03-06 22:45:28.715 2128-2128/com.dsg.host D/RePlugin.ws001: PACM: eval plugin com.egrethello, target=com.egrethello.MainActivity, container=com.dsg.host.loader.a.ActivityN1STNTS2
03-06 22:45:28.715 2128-2128/com.dsg.host I/RePlugin.ws001: alloc success: container=com.dsg.host.loader.a.ActivityN1STNTS2 plugin=com.egrethello activity=com.egrethello.MainActivity
03-06 22:45:28.715 2128-2128/com.dsg.host D/RePlugin.ws001: start activity: real intent=Intent { cat=[process:-2147483648,activity:com.egrethello.MainActivity,counter:0,container:com.dsg.host.loader.a.ActivityN1STNTS2,plugin:com.egrethello] cmp=com.dsg.host/.loader.a.ActivityN1STNTS2 (has extras) }
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: found: ActivityState {container=com.dsg.host.loader.a.ActivityN1STNTS2 state=occupied plugin=com.egrethello activity=com.egrethello.MainActivity size=0}
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: PACM: loadActivityClass in=com.dsg.host.loader.a.ActivityN1STNTS2 target=com.egrethello.MainActivity plugin=com.egrethello
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: PStatusC.getStatus(): ps is null. pn=com.egrethello
03-06 22:45:28.735 2128-2128/com.dsg.host I/RePlugin.ws000: loadLocked(): Initialized, is loaded = true
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: PACM: loadActivityClass, plugin activity loader: in=com.dsg.host.loader.a.ActivityN1STNTS2 activity=com.egrethello.MainActivity
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.egrethello.MainActivity
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: PACM: loadActivityClass, plugin activity loader: c=class com.egrethello.MainActivity, loader=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.dsg.host/app_p_a/-201027451.jar"],nativeLibraryDirectories=[/data/data/com.dsg.host/app_p_n/-201027451, /system/lib]]]
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.view.KeyEvent
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.qihoo360.replugin.f
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=library.f
03-06 22:45:28.735 2128-2128/com.dsg.host W/ResourceType: Type identifier 0xc is larger than type count 0x3
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: activity create before: com.egrethello.MainActivity this=1250289052 taskid=4
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.view.ContextThemeWrapper
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.theme: defaultThemeId = 2131493108
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.theme: dynamicThemeId = 2131493108
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.theme: manifestThemeId = 16973831
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.theme: themeId = 16973831
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: activity create: com.egrethello.MainActivity this=1250289052 taskid=4
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: activity create: name=com.egrethello activity=com.egrethello.MainActivity process=-2147483648 container=com.dsg.host.loader.a.ActivityN1STNTS2 counter=0
03-06 22:45:28.735 2128-2128/com.dsg.host I/RePlugin.ws001: perfect: container=com.dsg.host.loader.a.ActivityN1STNTS2 plugin=com.egrethello activity=com.egrethello.MainActivity
03-06 22:45:28.735 2128-2128/com.dsg.host D/RePlugin.ws001: found: ActivityState {container=com.dsg.host.loader.a.ActivityN1STNTS2 state=occupied plugin=com.egrethello activity=com.egrethello.MainActivity size=0}
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.ws001: PACM: activity created h=1250289052 class=com.egrethello.MainActivity container=com.dsg.host.loader.a.ActivityN1STNTS2
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.ws001: set activity intent cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.dsg.host/app_p_a/-201027451.jar"],nativeLibraryDirectories=[/data/data/com.dsg.host/app_p_n/-201027451, /system/lib]]]
03-06 22:45:28.745 2128-2128/com.dsg.host D/dalvikvm: GC_FOR_ALLOC freed 418K, 13% free 3431K/3940K, paused 2ms, total 2ms
03-06 22:45:28.745 2128-2128/com.dsg.host E/dalvikvm: Could not find class 'android.app.ActivityManager$TaskDescription', referenced from method com.qihoo360.replugin.component.activity.ActivityInjector.injectTaskDescription
03-06 22:45:28.745 2128-2128/com.dsg.host W/dalvikvm: VFY: unable to resolve new-instance 27 (Landroid/app/ActivityManager$TaskDescription;) in Lcom/qihoo360/replugin/component/activity/ActivityInjector;
03-06 22:45:28.745 2128-2128/com.dsg.host D/dalvikvm: VFY: replacing opcode 0x22 at 0x004d
03-06 22:45:28.745 2128-2128/com.dsg.host E/dalvikvm: Could not find class 'android.app.ActivityManager$TaskDescription', referenced from method com.qihoo360.replugin.component.activity.ActivityInjector.injectTaskDescription
03-06 22:45:28.745 2128-2128/com.dsg.host W/dalvikvm: VFY: unable to resolve new-instance 27 (Landroid/app/ActivityManager$TaskDescription;) in Lcom/qihoo360/replugin/component/activity/ActivityInjector;
03-06 22:45:28.745 2128-2128/com.dsg.host D/dalvikvm: VFY: replacing opcode 0x22 at 0x0053
03-06 22:45:28.745 2128-2128/com.dsg.host D/dalvikvm: DexOpt: unable to opt direct call 0x0080 at 0x4f in Lcom/qihoo360/replugin/component/activity/ActivityInjector;.injectTaskDescription
03-06 22:45:28.745 2128-2128/com.dsg.host D/dalvikvm: DexOpt: unable to opt direct call 0x007f at 0x55 in Lcom/qihoo360/replugin/component/activity/ActivityInjector;.injectTaskDescription
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.ws001: cached filename: com.egrethello -> /data/user/0/com.dsg.host/app_p_a/-201027451.jar
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.ws001: cached componentList /data/user/0/com.dsg.host/app_p_a/-201027451.jar -> com.qihoo360.replugin.component.ComponentList@4a80c448
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=org.egret.egretnativeandroid.EgretNativeAndroid
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.util.HashMap
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=org.egret.egretnativeandroid.EgretNativeAndroid$EgretNativeConfig
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.ws001: File /data/data/com.dsg.host/files/plugins_v3_data: mode=0x0, perms=0x1f9
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.ws001: File /data/data/com.dsg.host/files/plugins_v3_data/com.egrethello: mode=0x0, perms=0x1f9
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=android.app.ActivityManager
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=org.egret.runtime.launcherInterface.INativePlayer$INativeInterface
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=com.egrethello.MainActivity$1
03-06 22:45:28.745 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.StringBuilder
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.Long
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=org.egret.egretnativeandroid.RuntimeLoader
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=org.egret.egretnativeandroid.d
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.io.File
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.io.FileOutputStream
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=org.egret.egretnativeandroid.b
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.io.FileInputStream
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.nio.channels.FileChannel$MapMode
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.security.MessageDigest
03-06 22:45:28.755 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=dalvik.system.DexClassLoader
03-06 22:45:28.755 2128-2128/com.dsg.host D/dalvikvm: DexOpt: --- BEGIN 'runtime-dex.jar' (bootstrap=0) ---
03-06 22:45:28.915 2128-2128/com.dsg.host D/dalvikvm: DexOpt: --- END 'runtime-dex.jar' (success) ---
03-06 22:45:28.915 2128-2128/com.dsg.host D/dalvikvm: DEX prep '/data/data/com.dsg.host/files/plugins_v3_data/com.egrethello/files/runtime-dex.jar': unzip in 1ms, rewrite 158ms
03-06 22:45:28.915 2128-2128/com.dsg.host E/RePlugin.PluginDexClassLoader: loadClass ClassNotFoundException, from PluginClassLoader, cn=org.egret.egretnativeandroid.NativeKey, pluginName=com.egrethello
03-06 22:45:28.915 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.Object
03-06 22:45:28.915 2128-2128/com.dsg.host E/RePlugin.PluginDexClassLoader: loadClass ClassNotFoundException, from PluginClassLoader, cn=org.egret.runtime.launcherInterface.NativePlayer, pluginName=com.egrethello
03-06 22:45:28.915 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=org.egret.runtime.launcherInterface.INativePlayer
03-06 22:45:28.915 2128-2128/com.dsg.host E/RePlugin.PluginDexClassLoader: loadClass ClassNotFoundException, from PluginClassLoader, cn=org.egret.launcher.versioncontroller1_0.VersionController, pluginName=com.egrethello
03-06 22:45:28.915 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.String
03-06 22:45:28.915 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.System
03-06 22:45:28.915 2128-2128/com.dsg.host W/dalvikvm: Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/egret/egretnativeandroid/NativeKey;
03-06 22:45:28.915 2128-2128/com.dsg.host D/dalvikvm: Method.invoke() on bad class Lorg/egret/egretnativeandroid/NativeKey; failed
03-06 22:45:28.915 2128-2128/com.dsg.host D/RePlugin.PluginDexClassLoader: loadClass: load plugin class, cn=java.lang.Exception
03-06 22:45:28.915 2128-2128/com.dsg.host D/AndroidRuntime: Shutting down VM
03-06 22:45:28.915 2128-2128/com.dsg.host W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x94cfcb20)
03-06 22:45:28.915 2128-2128/com.dsg.host E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.dsg.host, PID: 2128
    java.lang.UnsatisfiedLinkError: Couldn't load egret from loader dalvik.system.DexClassLoader[DexPathList[[zip file "/data/data/com.dsg.host/files/plugins_v3_data/com.egrethello/files/runtime-dex.jar"],nativeLibraryDirectories=[/system/lib]]]: findLibrary returned null
        at java.lang.Runtime.loadLibrary(Runtime.java:358)
        at java.lang.System.loadLibrary(System.java:526)
        at org.egret.egretnativeandroid.NativeKey.<clinit>(NativeKey.java:12)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at org.egret.egretnativeandroid.EgretNativeAndroid.a(EgretNativeAndroid.java:179)
        at org.egret.egretnativeandroid.EgretNativeAndroid.initialize(EgretNativeAndroid.java:86)
        at com.egrethello.MainActivity.onCreate(MainActivity.java:37)
        at android.app.Activity.performCreate(Activity.java:5231)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2243)
        at android.app.ActivityThread.access$800(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5019)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
03-06 22:45:35.995 2128-2128/? I/Process: Sending signal. PID: 2128 SIG: 9
hwangjr commented 5 years ago

@bnotebook 能否看下确认下呢? 万分感谢。

wangxp423 commented 5 years ago

我这边刚好跟你相反,你是load为Null。我是宿主已经load了。插件中不能再load了。

wangxp423 commented 5 years ago

我这边也出现了你这个问题。不过我这边是在插件中引用的有so库,但是我将so文件直接放在了host中,插件中没有放,所以除了这个问题,当我把so文件放在插件中的时候 就没有这个find null问题了。还有一个注意点就是在加载so文件的时候,System.load和System.loadLibrary是有一点区别的

hwangjr commented 5 years ago

@wangxp423 这样就没有意义了,这样如何更新so库呢?

wangxp423 commented 5 years ago

我们最后用的System.load去加载的.so文件。用System.loadLibrary就会出你说的那个异常。当然前提是你的插件和host不能都去加载同一个.so,不然还会报异常

sushineguo commented 3 years ago

我们最后用的System.load去加载的.so文件。用System.loadLibrary就会出你说的那个异常。当然前提是你的插件和host不能都去加载同一个.so,不然还会报异常

这个目前怎么解决呢?