Android Studio 引用系统 jar 包的正确姿势
2016-07-11 18:46
295 查看
博客: 安卓之家
微博: 追风917
CSDN: 蒋朋的家
简书: 追风917
Android Studio 如何引用 jar 包,相信大家都会操作的,现在问题来了,对于系统里的 jar,比如 framework.jar该如何配置呢?
这里来个简单的需求吧,我们自己编译系统,并且有串口驱动,该驱动有提供 so 和 jar。这些文件配置到系统里面,当jar更新,api 不变的话,只要更新系统就可以,而应用程序可以不变而采用系统最新的 jar 包。
也就是说,编译时引用jar包,而不把该 jar 打包进 apk,而apk运行时采用系统里面的 jar 即可。
这个需求在 eclipse 里面很好配置,只要设置 jar 为系统 jar 就可以,那么 AS 该如何配置呢?
AS 采用 gradle 编译,那么配置 gradle 就可以的,google 后来到了这里:
Android Studio导入framework.jar等系统jar包方式
也就是说配置 jar 包时采用
这里采用
而我们常用的是
配置好后,sync 出现错误:
再次 google,无果,没人遇到过,,不知道当时作者怎么解决的,还没给我回复,后来删除 root gradle 配置部分,也就是仅仅修改 jar 包的引用方式为
说的很明白了,Class 找不到,因为没有把 jar 打包进 apk ,肯定找不到了,那么还需要配置别的地方,看来还得配置 root gradle ,但是上面的错误搜索不到,那么该如何进行下去,要换 eclipse 开发?显然这不能忍。。。
非淡泊无以明志,非宁静无以致远
没错,静下来,静下来,从最简单的开始。
看了下所长的 eclipse 版本项目,这仅仅是所长测试驱动调试使用的,移植到 AS 后,发现编译都不过,因为项目里没有 jar 包,那这个应用是如何跑起来的呢,然后在项目清单文件里找到了答案。
大家都看到了,就是
这样编译,运行都正常了,Bingo!
最后总结下,Android Studio 引用系统 jar 包需要配置两个内容:
清单文件里配置
最后,非常感谢您的阅读,有任何疑问,可以后面评论,谢谢!
神奇的安卓开发网站:http://androidcat.com/
安卓开源库收集整理:https://github.com/XXApple/AndroidLibs
分享是一种美德,更是一种生活方式!!
也许你会说我是一个梦想者,但我不是唯一的一个。
悦分享,越快乐^_^
欢迎交流,转载请注明出处,谢谢!
微博: 追风917
CSDN: 蒋朋的家
简书: 追风917
Android Studio 如何引用 jar 包,相信大家都会操作的,现在问题来了,对于系统里的 jar,比如 framework.jar该如何配置呢?
这里来个简单的需求吧,我们自己编译系统,并且有串口驱动,该驱动有提供 so 和 jar。这些文件配置到系统里面,当jar更新,api 不变的话,只要更新系统就可以,而应用程序可以不变而采用系统最新的 jar 包。
也就是说,编译时引用jar包,而不把该 jar 打包进 apk,而apk运行时采用系统里面的 jar 即可。
这个需求在 eclipse 里面很好配置,只要设置 jar 为系统 jar 就可以,那么 AS 该如何配置呢?
AS 采用 gradle 编译,那么配置 gradle 就可以的,google 后来到了这里:
Android Studio导入framework.jar等系统jar包方式
也就是说配置 jar 包时采用
providedscope,比如:
provided files('libs/BaiduLBS_Android.jar')
这里采用
provided,意思是说编译时引用
BaiduLBS_Android.jar,而不把该 jar 打包进 apk。
而我们常用的是
compile,意思是编译时引用 jar 包,并打包进 apk。
配置好后,sync 出现错误:
Error:(26, 1) Failed to notify build listener. > Could not get unknown property 'options' for root project '***' of type org.gradle.api.Project. > Could not get unknown property 'options' for project ':app' of type org.gradle.api.Project.
再次 google,无果,没人遇到过,,不知道当时作者怎么解决的,还没给我回复,后来删除 root gradle 配置部分,也就是仅仅修改 jar 包的引用方式为
provided,编译通过,运行后,出现异常:
java.lang.NoClassDefFoundError: com.xx.xx
说的很明白了,Class 找不到,因为没有把 jar 打包进 apk ,肯定找不到了,那么还需要配置别的地方,看来还得配置 root gradle ,但是上面的错误搜索不到,那么该如何进行下去,要换 eclipse 开发?显然这不能忍。。。
非淡泊无以明志,非宁静无以致远
没错,静下来,静下来,从最简单的开始。
看了下所长的 eclipse 版本项目,这仅仅是所长测试驱动调试使用的,移植到 AS 后,发现编译都不过,因为项目里没有 jar 包,那这个应用是如何跑起来的呢,然后在项目清单文件里找到了答案。
AndroidManifest.xml文件里有这样的配置:
<application android:name=".app.BaseApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <uses-library android:name="com.**.**" /> ... </application>
大家都看到了,就是
<uses-library android:name="com.**.**" />这一句,后面就是 jar 包的包名。
这样编译,运行都正常了,Bingo!
最后总结下,Android Studio 引用系统 jar 包需要配置两个内容:
provided方式应用 jar 包,//编译时引用 jar 而不把 jar 打包进 apk
清单文件里配置
<uses-library android:name="com.**.**" />//告诉应用引用系统 jar 的包名
最后,非常感谢您的阅读,有任何疑问,可以后面评论,谢谢!
神奇的安卓开发网站:http://androidcat.com/
安卓开源库收集整理:https://github.com/XXApple/AndroidLibs
分享是一种美德,更是一种生活方式!!
也许你会说我是一个梦想者,但我不是唯一的一个。
悦分享,越快乐^_^
欢迎交流,转载请注明出处,谢谢!
相关文章推荐
- Android 中动态加载.jar的实现步骤
- java使用命令行打包JAR
- 用代码更新你的jar包
- 用Java连接sqlserver数据库时候几个jar包的区别分析
- Android Studio注释模板介绍
- 基于将Android工程做成jar包和资源文件的解决方法
- jar包双击执行程序的方法
- 在eclipse导入Java的jar包的方法JDBC(图文说明)
- Java在制作jar包时引用第三方jar包的方法
- 从Java的jar文件中读取数据的方法
- Jar打包用法详解
- 基于Java的打包jar、war、ear包的作用与区别详解
- dom4j从jar包中读取xml文件的方法
- java生成jar包的方法
- jar命令的用法详解
- 将Python代码打包为jar软件的简单方法
- JSP打入jar包
- 关于Android Studio 和 Gradle的那些事儿
- 收藏各种技术源码
- Android APK反编译就这么简单 详解(附图)