AS导入Framework.jar

AS导入Framework.jar,第1张

概述AS导入framework.jar由于在framework层添加了一些接口,然后又不想每次更改APP都在源码环境下编译验证,特把APP源码拷贝到AS中进行编译修改,这就需要在AS中导入系统编译出来的framework.jar包,才能正常编译。编译framework.jar包make-j24编译出framework.jar;并在 out\ta AS导入framework.jar

由于在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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存