DroidPlugin
DroidPlugin copied to clipboard
A plugin framework on android,Run any third-party apk without installation, modification or repackage
问题说明: ================================== 当apk作为普通的程序安装时,运行正常。 当apk作为插件apk加载到宿主apk中时,报异常RuntimeException:Unable to create application …… 实际报错在MyApplication的45行,是这么一行代码: **JPushInterface.init(this); //极光推送的初始化** 是在极光推送的初始化过程中,有一个静态变量List未初始化导致的空指针异常。 初步猜测原因:DroidPlugin在加载插件apk的过程中忽略了一部分生命周期的工作,以至于极光推送的部分服务没有被正常开启,该“静态成员变量”未被初始化,所以导致了空指针异常。 希望能够解决一下哈~ 附异常信息: ================================ Caused by: java.lang.RuntimeException: **Unable to create application com.xx.x.MyApplication:** java.lang.NullPointerException: Attempt to invoke interface method...
While trying to wrap **whatsapp** I am having the following problem: Continuous call to _handleOnStartOne()_ method inside ServcesManager for the same Service will cause startId to grow each time by...
如题, 使用魅族(API level: 23 Flyme 6.2.0.0A)使用ContenProvider的时候报错: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database 11-06 17:40:37.276 4607-4607/com.microvideo.mivi:PluginP03 W/System.err: at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method) 11-06 17:40:37.276 4607-4607/com.microvideo.mivi:PluginP03 W/System.err: at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:220) 11-06 17:40:37.276...
打开微信会崩溃 ![2017-10-30 09-57-34](https://user-images.githubusercontent.com/19178888/32151582-f8d6b77e-bd58-11e7-971d-c06bb66075cd.png)
原先代码中对 ActivityManager 中的 hook 失效了,在 hook 替换 ActivityManagerNative 对象中的 ActivityManager 的代理出现了问题。 通过查阅源码,发现新版本中对 ActivityManagerNative 中去除了 ActivityManagerNative 中的 gDefault 变量,导致原先的替换逻辑找不到变量报错。并且对 getDefault 进行了调整,目前是直接返回 ActivityManager 中的 getService 方法,该方法返回的是 android.app.ActivityManager.IActivityManagerSingleton 中。 所以新版本中的替换方法是直接 hook ActivityManager 中的...
1.按照正规步骤执行玩,插件apk安装返回1,成功,但是通过包名开启插件,intent一直为null; 2.application中初始化,如果放到主线程中,直接anr
由于特殊需求,需要将插件中所有的`Class.class.getResourceAsStream(String)`方法调用进行重定向。根据API文档指示,该方法的调用最终会被委托到其类加载器中的同名方法。 因此是否有方法可以用自定义的类加载器继承原来DroidPlugin的类加载,然后使用我的类加载器来启动插件?
try { PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES); if(packageInfo.activities==null){ 此处为空,找了很久始终没有解决方案 return null; } for (ActivityInfo ai : packageInfo.activities) { if ((name+hideName).equals(ai.nonLocalizedLabel)) { activityInfo = ai; break; } } } catch (Exception...
宿主的包名能够跟插件的包名保持一致嘛?
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);