AndroidStudio引入framework.jar
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。