美文网首页Android开发Android从菜鸟到大牛Android开发经验谈
AS中导入framework.jar包可以编译,无法运行

AS中导入framework.jar包可以编译,无法运行

作者: 诡异的叶子 | 来源:发表于2018-08-15 14:57 被阅读9次

由于业务求,要将定制化的framework包导入到AS中,然后不断查阅料,找到一系列比较全的资料。最终整理如下:

1.将jar包放在libs目录下:


1

2.右键将包add as library


image.png

3.在app的build.gradle下 dependence下:

image.png

记住:implementation fileTree(include: ['*.jar'], dir: 'libs')必须注释,否则会报错。
将implementation 改为compileOnly(原来的provided已经废弃)

4.然后我们需要将framework的编译顺序更改到系统自带android.jar之前,以前是手动更改,后来发现一段脚本,得救了。在app的build.gradle下,最后添加

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"
            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
        }
    }
}

这段代码是用来将系统jar包自动放置于最后的位置。打开app.iml可以查看到效果:


image.png

然后为了使framwork包生效,需要在系统的build.gradle下添加一段代码


image.png

代码具体如下:

 //添加以下代码,使cframework-base.jar包编译先于android.jar
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add('-Xbootclasspath/p:D.\\git\\MyApplication\\app\\libs\\framework-base.jar')
        }
    }

然后实验activity的一句话:


image.png
image.png

然后编译t通过,运行的时候GG了。。。

编译通过


image.png

运行GG


image.png

有没有道友解决这个大魔怪

相关文章

网友评论

  • 诡异的叶子:本次更新内容:t同事反馈的可以打包但是无法通过编译,发现在编译时没有更改时序
  • 野火友烧不尽:framework是系统的,在不同的手机系统可能不一样
    野火友烧不尽:@诡异的叶子 你直接编译系统源码
    诡异的叶子:@LineCoder 而且这边设备都是拿的这个framework的成品设备
    诡异的叶子:@LineCoder 我也尝试过把测试设备,api ,framework对应开发环境的sdk全部对应。最终结果也是一样的

本文标题:AS中导入framework.jar包可以编译,无法运行

本文链接:https://www.haomeiwen.com/subject/czhwbftx.html