当前位置:网站首页>AndroidStudio导入定制化的framework classess.jar AS 4.0.1版本亲测有效
AndroidStudio导入定制化的framework classess.jar AS 4.0.1版本亲测有效
2020-11-09 12:12:00 【osc_ydeb2o99】
有时候,我们需要调用系统framework层隐藏的接口,或者定制化的一些接口,那么在androidstudio不做特殊的配置和处理的话,默认优先引用android sdk api。那么就需要作如下配置:
步骤1: 在Moudle下的app下面增加libs文件夹,并将自己的jar包放在里面。
--app
--libs
---framework.jar
步骤2:在Moudle下的app目录下的build.gradle文件增加如下红色代码。
dependencies {
compileOnly files('libs/framework.jar')
implementation 'androidx.appcompat:appcompat:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
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
}
}
}
其实上面这个preBuild{...} 主要就是将默认的android sdk 放到最后面,这样就自己的framework.jar就能优先引用了。
步骤3: 在project根目录下的build.gradle文件下增加如下代码:
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\framework.jar')
}
}
repositories {
google()
jcenter()
}
}
上面步骤设置好之后,刷新工程,重新编译,可能会出现运行时报错,提示odex超出65536,一般需要加上如下设置。
在Module的app下面的build.gradle里找到defaultConfi加入multiDexEnabled = true
并在dependencies里添加
implementation 'com.android.support:multidex:1.0.0'
版权声明
本文为[osc_ydeb2o99]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4387121/blog/4709325
边栏推荐
猜你喜欢
Fedora 33 Workstation 的新功能
20201107第16课,使用Apache服务部署静态网站;使用Vsftpd服务传输文件
阿里、腾讯、百度、网易、美团Android面试经验分享,拿到了百度、腾讯offer
Front end code style practice prettier + eslint + git hook + lint staged
Method of creating flat panel simulator by Android studio
Recommended tools for Mac
抢球鞋?预测股市走势?淘宝秒杀?Python表示要啥有啥
Adobe Experience Design /Xd 2020软件安装包(附安装教程)
VisualStudio(Mac)安装过程笔记
Adobe experience design / XD 2020 software installation package (with installation tutorial)
随机推荐
20201107第16课,使用Apache服务部署静态网站;使用Vsftpd服务传输文件
未来中国电信将把云计算服务打造成为中国电信的主业
JVM learning (4) - garbage collector and memory allocation
详解Python input()函数:获取用户输入的字符串
Mac 终端(terminal) oh-my-zsh+solarized配置
A simple way to realize terminal text paste board
Chrome browser engine blink & V8
大型项目Objective-C - NSURLSession接入短信验证码应用实例分享
嗯,查询滑动窗口最大值的这4种方法不错...
jsliang 求职系列 - 08 - 手写 Promise
AI应届生年薪涨到40万了,你现在转行还来得及!
JVM学习(五) -执行子系统
iPhone“连到系统上的设备没有发挥作用”原因分析及解决方法 20200105
深圳C1考证历程
Setting up a proxy for the WGet command
TiDB x 微众银行 | 耗时降低 58%,分布式架构助力实现普惠金融
嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:樊文凯
配置交换机Trunk接口流量本地优先转发(集群/堆叠)
实现商品CRUD操作
A simple ability determines whether you will learn!