由于在framework层添加了一些接口,然后又不想每次更改APP都在源码环境下编译验证,特把APP源码拷贝到AS中进行编译修改,这就需要在AS中导入系统编译出来的framework.jar包,才能正常编译。
编译framework.jar包
make -j24编译出framework.jar;并在 out\target\common\obj\JAVA_liBRARIES\framework_intermediates\目录拷贝出编译好的jar包classes-full-deBUG.jar。
AS中导入framework.jar包
2.1将拷贝出的classes-full-deBUG.jar重命名为framework.jar并拷贝到AndroID工程的libs目录下面。
右键点击jar包,选择add as libary。
2.2打开Module:app 的build.gradle,在dependencIEs下添加compileOnly files(‘libs/framework.jar’)
@H_404_25@dependencIEs {implementation 'com.androID.support:appcompat-v7:28.0.0'implementation 'com.androID.support.constraint:constraint-layout:1.1.3'compileOnly files('libs/framework.jar')}
2.3打开Module:app 的build.gradle,在最后添加如下代码: 将framework.jar的编译顺序更改到系统自带androID.jar之前
@H_404_25@preBuild { dolast { def imlfile = file(project.name + ".iml") println 'Change ' + project.name + '.iml order' try { def parsedXml = (new XmlParser()).parse(imlfile) def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' } parsedXml.component[1].remove(jdkNode) def sdkString = "AndroID API " + androID.compileSdkVersion.substring("androID-".length()) + " Platform" println 'what' + sdkString new Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkname': sdkString, 'jdkType': 'AndroID SDK']) groovy.xml.XmlUtil.serialize(parsedXml, new fileOutputStream(imlfile)) } catch (fileNotFoundException e) { // nop, iml not found println "no iml found" } }}
2.4打开Project 的build.gradle,在allproject下添加如下代码:将framework.jar打入apk包中
@H_404_25@allprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\framework.jar') } }}
2.5为了防止报65536错误,可以增加多odex支持,在Module:app 的build.gradle中的
defaultConfig中添加如下代码:
@H_404_25@ defaultConfig { applicationID "com.androID.test" minSdkVersion 26 targetSdkVersion 28 multIDexEnabled = true }
并且引用:
@H_404_25@ compile 'com.androID.support:multIDex:1.0.0'
到此就可以顺利的使用自己编译出来的framework.jar在AS中编译APK了。
总结以上是内存溢出为你收集整理的AS导入Framework.jar全部内容,希望文章能够帮你解决AS导入Framework.jar所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)