美文网首页
AndroidStudio引入framework.jar

AndroidStudio引入framework.jar

作者: AnterC | 来源:发表于2022-07-08 13:52 被阅读0次

    framework.jar生成目录在out\target\common\obj\JAVA_LIBRARIES\framework_intermediates\classes.jar

    第一步:将framework.jar拷贝到module/libs目录下;

    第二步:在Project的build.gradle的allprojects{ }中加入

    gradle.projectsEvaluated {

        tasks.withType(JavaCompile) {

            options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\framework.jar')

        }

    }

    或者在module的build.gradle的android{ }加入

    gradle.projectsEvaluated {

            tasks.withType(JavaCompile) {

                Set<File> fileSet = options.bootstrapClasspath.getFiles()

                List<File> newFileList = new ArrayList<>()

                newFileList.add(new File("libs/framework.jar"))

                newFileList.addAll(fileSet)

                options.bootstrapClasspath = files(newFileList.toArray())

            }

        }

    第三步:在module的build.gradle的最外层加入如下代码,为的是在iml文件中将jdkType="Android SDK"那一行移到framework.jar的后面;

    preBuild {

        doLast {

            // 注意:iml的路径要根据自己的实际情况来写

            def imlFile = file("../.idea/modules/b561/AvmLive.b561.main.iml")

            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 groovy.util.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

            }

        }

    }

    第四步:编译运行module。

    相关文章

      网友评论

          本文标题:AndroidStudio引入framework.jar

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