最近公司项目在做launcher,设计过程中与系统设计到了对接,需要实现一些官方没有的功能,就需要在系统层添加一些接口,然而官方的sdk中没有这些接口,需要导入framework.jar,在eclipse或者idea中都是可以将framwork包放在android.jar前面编译的,但是在gradle中却不支持之前的做法,查了很多资料,都没有找到合适的方案,在最近有朋友提醒的情况下研究出了相关问题,需要在项目根目录下的gradle.build中配置下面信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
allprojects {

gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
//放在项目的根目录下
options.compilerArgs.add('-Xbootclasspath/p:framework-x5057.jar')
//放在项目app的lib文件夹下
// options.compilerArgs.add('-Xbootclasspath/p:app/lib/framework-x5057.jar')
//放在项目app的libs文件夹中
// options.compilerArgs.add('-Xbootclasspath/p:app/libs/framework-x5057.jar')
}
}

repositories {
jcenter()
}

}

按照上面配置项目的gradle即可。