com.infinite.dynamicloadjar.plugin.PluginLoader
com.infinite.dynamicloadjar.plugin.CountryBean
task deleteOldJar(type: Delete) {
delete 'build/libs/loadJar.jar'
}
//打包操作
task makePluginJar(type: Jar) {
//要打成的包的名字
baseName 'loadJar'
//选取要打包的文件夹
from('build/intermediates/javac/debug/classes/com/infinite/dynamicloadjar/plugin/')
//需要跟实际类的包名路径一样
into('com/infinite/dynamicloadjar/plugin')
// 排除在外的文件
// exclude('BuildConfig.class', 'R.class', 'MainActivity.class')
// 排除以R$开头的文件
// exclude{ it.name.startsWith('R$');}
}
//打包,在右侧边栏中Gradle-->app-->other-->makePluginJar
//最后在build/libs/文件夹下执行命令,loadJar1.jar是生成的文件
// dx --dex --output=loadJar1.jar loadJar.jar
makePluginJar.dependsOn(deleteOldJar, build)
在右侧边栏中Gradle-->app-->other-->makePluginJar运行任务后会在app/build/libs目录下生成loadJar.jar,
然后使用dx命令转换Jar包,dx工具位于/Users/xxxx/AndroidSDK/build-tools/28.0.3下,可配置到系统环境变量中
运行dx命令,loadJar1.jar是转换后的Jar文件
dx --dex --output=loadJar1.jar loadJar.jar
将loadJar1.jar拷贝到手机SD卡中的amap目录下
记得给SD卡读写权限,将这两个类注释掉,运行时不需要了
com.infinite.dynamicloadjar.plugin.PluginLoader
com.infinite.dynamicloadjar.plugin.CountryBean