Android引入第三方jar的问题

搞了一天,发现很麻烦。作个备忘录。
android带了一些java的库,比如javax,但是不完整,要用到本身不包括的那一部分的时候,无论是直接把整个jar或者部分加到工程中编译,都是不行的,

android在编译的过程中,会先生成.class文件,然后再把所有.class转换成一个.dex,再打包成.apk。
.dex实际上就是跑在dalvik上的二进制码,跟标准java的二进制码是不一样的。转换成一个.dex从网上看到的一些文章据说是能提高运行效率。

如果是想把jar直接编到工程里,会被告知“你正在编译core library”,因为包名和core library里的某些包是一样。如是仅仅把jar路径设到classpath里,这样生成apk,install到手机上,运行时,会报“找不到文件“错误。

bear提议从jar包对应源码里把需要的部分抠出来,放在另一个文件夹里,改下包名,编译的时候就不会被认为是core lib了,但是编译的时候,会发现又缺一些东西,再抠出来加上,还不够,好像有点恶性循环了。不过如果不是太多的话,这么做倒也是一个方法。

要不我就通过jni调C的库吧。

哎,非常不理解为什么android自带的一些jar是不完整的,这样会导致很多现成的java应用要移植到android上时运行不了,而google费心删掉的那一部分究竟会对android造成什么不好的影响呢?不理解啊不理解,不知道哪天能想明白。。

refer from http://www.douban.com/note/53489145/

key: 包名被认为和core lib一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值