360RePlugin 常见问题
1.共享宿主
将宿主需要的文件提取出来编译成库,骗过编译期。主要看demo1中的build.gradle有相关说明。 骗过编译期。
2.插件文件64K(multidex)了怎么破?需要对插件进行编译拆包。com.ceabie.dextools:gradle-dexknife-plugin:1.6.1分包的问题,打包后虽然有主classes有找到com.qihoo360.replugin.Entry但还是报错,自己手动添加maindexlist.txt在里面添加com.qihoo360.replugin打包进去就好了,具体操作请参考https://blog.csdn.net/qq_36282231/article/details/81026296
3.context异常,当前是的上下文是谁的,这个要明确。宿主or插件。
4.android 8.0 异常代码RePlugin.getConfig().getCallbacks().createPluginClassLoader(mPluginObj.mInfo, mPath, out, soDir, parent);不会再out目录下面生成.dex文件
5.插件相关权限要提前在宿主中注册。
6.demo里面的host运行抱错,可先注释掉,可直接运行。
private void testThreadClassLoader() {// 在2.1.7及以前版本,如果直接调用此方法,则拿到的ClassLoader可能是PathClassLoader或者为空。有极个别Java库会用到此方法// 这里务必确保:cl == getClassLoader(),才符合预期
// ClassLoader cl = Thread.currentThread().getContextClassLoader();
// if (cl != getClassLoader()) {
// throw new RuntimeException("Thread.current.classLoader != getClassLoader(). cl=" + cl + "; getC=" + getClassLoader());
// }}
7.intent传serializable对象失败。
检测是否serializable对象里面是否有id,建议用Parcelable来传值。
8.源码与字节码不匹配,清除gradle repo缓存后就ok了。
9.支持混淆,务必要确保你调用的,以Provided形式的Jar是被Keep住的。
10.LocalBoradcastManager和PluginLocalBroadcastManager 是平行关系,非继承!
11.插件中的Activity嵌套Fragment崩溃,记得Fragment不被混淆,声明为Public的,而且得有一个Public的构造函数。如果遇到xml中fragment问题,可先new再add进去。
12.启动抱错,忘记加repluginPluginConfig 在插件中
repluginPluginConfig {//宿主app的包名pluginName = "插件名.demo1"//宿主app的包名hostApplicationId = "宿主.参见demo"//宿主app的启动activityhostAppLauncherActivity = "插件.参见demo"
}
13.插件可以复用主程序的资源,可以的,因为会同时把host和plugin的Context传递给插件.
14.插件里面WebView读取asserts的ERR_FILE_NOT_FOUND参见issue
15.插件中引用AAR中的activity,会出现白屏.参见issue
16.Didn’t find class “com.qihoo360.replugin.Entry”.检查是否缺少相关依赖
compile 'com.qihoo360.replugin:replugin-plugin-lib:2.1.6' 库
17.大部分Context导致的问题,要明白是宿主的Context还是插件的Context。我们当前是在哪里使用的Context。使用宿主资源建 议用getIdentifier,最好还不要资源混淆宿主源文件。
18.插件app好像不兼容百度地图,因为Windows环境下编译时,大小写不区分导致的问题(实际上也是百度地图Jar包生成时出现 了问题,明明是a,但文件名变成了A)
19.嵌套插件,原理上行得通。但是最好不要加固!
20.无法启动demo第3个PluginFragmentActivity。
setUseHostClassIfNotFound(true)方法?没有调用的话就会出这个Error,因为只有打开此开关后才会从宿主中读取Fragment等公共库
21.加固问题。宿主加固没问题,插件加固目前是不可以的
22.阿里路由框架问题,可去次库寻找答案
360RePlugin 常见问题相关推荐
- llvm常见问题 (FAQ)
llvm常见问题 (FAQ) License 可以修改 LLVM 源代码并重新分发修改后的源代码吗? 可以修改 LLVM 源代码并重新分发基于二进制文件或其它工具,而无需重新分发源代码吗? 源代码 L ...
- 深度学习常见问题解析
深度学习常见问题解析 计算机视觉与自动驾驶 今天 一.为什么深层神经网络难以训练? 1.梯度消失.梯度消失是指通过隐藏层从后向前看,梯度会变得越来越小,说明前面层的学习会显著慢于后面层的学习,所以学习 ...
- oracle数据库性能awr,常见问题:如何使用AWR报告来诊断数据库性能问题
常见问题:如何使用AWR报告来诊断数据库性能问题 (Doc ID 1523048.1) Last updated on FEBRUARY 03, 2019 适用于: Oracle Database - ...
- JAVA 多用户商城系统b2b2c-Spring Cloud常见问题与总结(一)
在使用Spring Cloud的过程中,难免会遇到一些问题.所以对Spring Cloud的常用问题做一些总结.需要JAVA Spring Cloud大型企业分布式微服务云构建的B2B2C电子商务平台 ...
- 视频直播常见问题与解决办法汇总【系列二—直播截图】
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 使用场景 用户常需要对视频直播的内容进行分析.例如,需要对直播中的某一帧的内容作为封面图片或者对于直播内容进行鉴黄以查 ...
- 小编说之“常见问题答疑”
2019独角兽企业重金招聘Python工程师标准>>> 关于前嗅Forespider爬虫的常见问题答疑 奋战在一线为客户答疑的狗蛋儿给小编提供了很多客户经常会问到的问题的素材,小编帮 ...
- pda找不到服务器,PDA连不上服务器常见问题分析.doc
PDA连不上服务器常见问题分析.doc PDA连不上服务器常见问题分析 请查看PDA的网络通不通,可以先检查WIFI/3G是否连接上网络,如果连接不上,点击PingToots工具,用"pin ...
- 初学者css常见问题_5分钟内学习CSS Grid-初学者教程
初学者css常见问题 Grid layouts are fundamental to the design of websites, and the CSS Grid module is the mo ...
- OpenStack环境搭建(六:常见问题及解决方案总结)
实验要求: 完成Virtual box平台安装,会应用相关操作: 在virtual box虚拟平台上部署Fuel Master节点: 在virtual box虚拟平台上部署计算节点Computer: ...
最新文章
- 发现自己竟然有点恐高,郁闷
- 【ActiveMQ】消息生产者自动注入报错:Could not autowire. No beans of 'JmsMessagingTemplate' type found...
- JAVA学生成绩分析系统任务书,学籍管理系统任务书
- python 数据分析找到老外最喜欢的中国美食【完整代码】
- python pytest框架
- input子系统分析一
- docker 镜像命令
- ubuntu安装vsftpd遇到的问题
- Android,EditText,InuputType
- 洛谷——P1089 [NOIP2004 提高组] 津津的储蓄计划
- Asp.net MVC中如何实现依赖注入(DI)(二)
- 写博客时怎么录制动态图片或者小视频
- 重力对手表的走时精度有何影响?12:06:44
- 九宫格(安卓手机的图形锁有几种解锁图案)
- ACCESS实例2 资料管理1——表、表关系与查询
- Linux bc小数点前补0
- java 将.amr音频文件转换为.mp3或.wav文件
- 【数学建模】熵值法与多指标评价系统
- Android PCM 播放全是噪音滋滋滋
- 【BIOS】主板BIOS的两种启动模式,传统模式(Legacy)和UEFI模式