androidstudio更改优先加载系统包framework.jar的顺序
来源:互联网 发布:中学生网络成瘾量表 编辑:程序博客网 时间:2024/05/29 13:10
这篇文章主要针对本地开发系统级应用,使用系统源码中的隐藏方法时,优先加载需要的隐藏api而不是官方的SDK的解决策略。
一、androidstudio编译时加载的顺序。
在我们新建的每一个工程中,在项目名/app目录下都有一个文件,叫做 app.iml .(如图)
这个文件是编译器在运行时候加载需要依赖的库文件的顺序表,打开文件,我们可以观察一下:
我们看到最上面的一条是官方SDK,也就是最先加载的库文件,而我们需要的framework.jar在中间,则不会优先加载。
为了优先加载framework.jar,我们可以选择将需要的一条放置到最上面,这里我在本地需要获取ActivityManager中的一个叫做removeTask方法,这个方法对外是隐藏的,当前情况如图:
这个是framework.jar中ActivityManager中需要使用的方法removeTask。
直接使用导致的问题:
我们会发现无法找到需要的方法。
接下来我们改变一下 app.iml 中的顺序:
我们将framework.jar放置到SDK的前面,
然后观察具体代码中的使用情况:
我们会发现已经可以获得了。
但是,这个只是暂时解决了问题,无法从根本上解决此类问题,因为你会发现从新clear/rebuild一下,顺序又会回到原来的位置。
从根本上解决的方法:
在gradle文件中有个地方:
allprojects { repositories { jcenter() }
在这下面,我们加入一段代码:
gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs.add('-Xbootclasspath/p:F://TvHelper/app/libs/framework.jar') } }为了清晰,再放一个截图:
这里:Xbootclasspath/p 是java编址的优先寻址设置,这里我们设置的是绝对路径。
写完这个之后,及时你的api调用的时候无法获取相应的方法,只要使用正确,也是可以完成build的。当然如果你更改了app.iml文件的顺序,那么使用起来会更加舒服一些。
- androidstudio更改优先加载系统包framework.jar的顺序
- AndroidStudio 更改jar包编译顺序优先于android.jar,使用@hide api
- AndroidStudio 更改jar包编译顺序优先于android.jar,使用@hide api
- AndroidStudio 更改jar包编译顺序优先于android.jar,使用@hide api
- Weblogic优先加载jar包配置
- tomcat中jar包类的加载顺序
- tomcat中jar包类的加载顺序
- 如何更改AndroidStudio项目的包名
- jar包和claess文件加载顺序
- tomcat中jar包加载顺序
- Androidstudio更改包名
- AndroidStudio-加载so文件与jar包(可能是最完美的解决方法)
- tomcat 下 部署多工程 jar (Tomcat的类库加载的优先顺序一览 )
- AndroidStudio 导出关于Unity的Jar包
- Androidstudio中添加jar包的方法
- AndroidStudio 3.0 生成jar包的方法
- Android Studio 优先源码编译的framework.jar(android.jar)
- AndroidStudio导出jar包
- Spring 自定义注解,配置简单日志注解
- 做ppt课件直播时如何解决ppt表格内容无法加载问题
- 2017-11-07
- Jmeter 测试spingmvc程序,token 登陆验证,压力测试
- Oracle 修改列的数据类型
- androidstudio更改优先加载系统包framework.jar的顺序
- SM951 NVMe 版本安装Win7 的正确方法
- Perl 常用特殊变量
- 6-15 求单链表结点的阶乘和(15 point(s))
- JAVA抽象类与接口
- 生信软件之fastqc(查看基因质量)
- requirejs初体验
- 网站性能优化的常用方法
- HAProxy安装及简单配置