2013年1月28日 星期一

[Android]在android專案中import第三方提供的library

2013/03/03 更新:
重要Survey:liushaogeng的专栏 -  android工程中引入第三方JAR包后安装APK时老是提示找不到库文件 || Android如何将程序打成jar包 || 运行java.lang.noclassdeffounderror错误
========================================
在Ubuntu的終端機底下 將目錄切換到專案底下
用vim .classpath   (.classpath是隱藏檔 但是輸入tab 選項裡面會跑出來可以以此確定)
看到自己打包的文件:
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ddd"/>  
了不起在kind前面加exported="true"
都像是模擬器Run沒問題 但包出來的.apk文件 會是有問題的
參考一個網站:YoYong - android 打包第三方jar包
提到:

发现eclipse导入包操作后,写入了这行代码

这行代码应该是eclipse内部识别的,并不会打包到模拟器上,所以运行到模拟器上找不到相应的jar包。
为了在android内部能找到jar包,于是在android项目内新建一个lib文件夹,将jar包放在lib文件夹内。
并将上面的那行代码删除,添加一行代码:

文章最後說道建議用:
<classpathentry kind="lib" path="lib/lib.jar"/> 頂多exported="true"/>

但是包完之後 大小跟用之前的方法一樣 而且,依舊找不到lib在apk內

無解~~包是包起來了 但實機測ok不ok還是未知數

有文章說道:adt更新到17之後會有問題
walle的专栏 -  android导入第三方包所遇到的NoClassDefFoundError错误
huzgd的专栏-如何解决ADT17下Android第三方jar包NoClassDefFoundError的错误
詳查:http://www.360doc.com/content/12/1124/15/10388890_249945519.shtml

自由程式FC--将第三方jar包打包进apk中

我就相信這一次了!!!
官網寶貴說明:

Android Tools Project Site - Dealing with dependencies in Android projects




========================================
2013/02/18 更新:
今天需要重新import third party library 用了之前的方法始終無法包進去

Mr. 顆痣-工程屍的日子 - [Eclipse] Import & Export *.jar library 其中的

3. 進入 Order and Export 勾選引入的 User Libraries
→ Project → Build Path → Cinfigure Build Path → Libraries & Order and Export

硬包 包進去了以後可以參考
========================================


所謂第三方library就是import 非 java或android的lib
今天在new 一個 project  > Android Project from Existing code
前面還好 import進來  一堆import都亮了
好家在之前還有印象
是從 Eclipse 對專案按右鍵 Build Path >  Configure Build Path > 點選Library > Add Library... >
User Library > Next > User Libraries > New > 隨便輸入一個名字 > OK > 再點選Add JARs... >
找到對應的jar檔 > OK >  OK
燈泡都消失了 就以為正常build的apk可以用

但在server上 用 ls -l  去查詢檔案大小發現有差就覺得不太妙

於是進階搜尋並survey到這兩篇:
http://www.cnblogs.com/sinojelly/archive/2012/01/13/2322081.html
http://www.apkbus.com/blog-4-38413.html
大徹大悟

在Eclipse裡面的專案資料夾裡新增了lib資料夾 把jar檔丟進lib裡面
把上述步驟重作一次  在Add JARs...那步選的是lib的jar  再重build一次apk就可以正常跑了


更進一步
一次導入多個jar包 還沒試過
有survey : http://blog.csdn.net/fangchongbory/article/details/7592889


沒有留言:

張貼留言