① android怎麼使用jar包
Android項目常常需要引用自定義的或者外部的jar包,這里提供一些經驗,供參考。
一. 一般做法:
1. 通常情況下,直接將jar包在Eclipse工程中的libs目錄下,就可以了,Eclipse就會自動引用過來,代碼中有紅叉的地方也就會消失了。
2. 查看build path中order and export中的private Libaries和Dependencies是否勾選,正確的做法是勾選。
再clean整個工程,再運行可否。
3. 你的jar文件必須也是由Android工程創建的,否則,會發生「"java.lang.NoClassDefFoundError「等錯誤,下面是一個錯誤:
12-09 00:43:05.172: E/dalvikvm(4456): Could not find class 'com.example.test4androidjar2.Jar4Android', referenced from method com.example.filemanagertest4android.MainActivity$1.onClick
4. 你的jar包必須是在Android下面編輯和編譯,打包,不能在java中進行打包。FileMnager就是一例。
二.可能引起的異常:
1. Could not find class ......
2. VFY: unable to resolve new-instance 643 .....
3. Could not find class 'com.example.test4androidjar2.Jar4Android'
4. java.lang.NoClassDefFoundError...
三. 解決方法:
參考上面"一.一般做法"中提到的來做。
② 我自己做的android工程jar包,怎麼找不到資源的id啊
281749743發的地址 http://www.kankanews.com/ICkengine/archives/16636.shtml是正解,我已經親自試過了,結貼
③ Android的APK包里的文件類型都是什麼
一個APK文件結構為: res/ 存放資源文件的目錄 META-INF/ Jar文件中常可以看到 resources.arsc 編譯後的二進制資源文件,主要是程序中使用字元串! AndroidManifest.xml 程序全局配置文件 classes.dex Dalvik位元組碼文件,我們寫的JAVA文件被編譯成DEX格式的位元組碼了 總結下我們發現Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接,和Windows Mobile中的PE文件有區別,這樣做對於程序的保密性和可靠性不是很高,通過dexmp命令可以反編譯,但這樣做符合發展規律,微軟的 Windows Gadgets或者說WPF也採用了這種構架方式。 1. Java文件-----應用程序源文件 我想這是大家聽到android時就聽到的文件,android本身相當一部分都是用java編寫而成(基本上架構圖里頭藍色的部份都是用Java開發的),android的應用必須使用java來開發。 2. Class文件------Java編譯後的目標文件 不像通常我們使用的J2se,java編譯成class就可以直接運行,android平台上class文件不能直接在android上運行。由於Google使用了自己Dalvik來運行應用,所以這里的class也肯定不能在sun的java環境中運行,我個人感覺android的class文件實際上只是編譯過程中的中間目標文件,需要鏈接成dex文件後才能在dalvik上運行。 3. Dex文件-----Android平台上的可執行文件 Android虛擬機Dalvik支持的位元組碼文件格式Google在新發布的Android平台上使用了自己的Dalvik虛擬機來定義,這種虛擬機執行的並非Java位元組碼,而是另一種位元組碼:dex格式的位元組碼。在編譯Java代碼之後,通過Android平台上的工具可以將Java位元組碼轉換成Dex位元組碼。雖然Google稱Dalvik是為了移動設備定做的,但是業界很多人認為這是為了規避向sun申請Java license。由於沒有太多的細節公開,現在還找不到Dalvik的具體實現,只能根據SDK做一些簡單的分析工作。 這個Dalvik VM針對手機程式/CPU做過最佳化,可以同時執行許多VM而不會佔用太多Resource,Dalvik VM的source目前還沒有開放讓人下載(未來整個系統都會開放),目前Google的角度是希望能讓大家用這套SDK開始開發AP,底層的東西會慢慢發布。 4. Apk文件-------Android上的安裝文件 Apk是Android安裝包的擴展名,一個Android安裝包包含了與某個Android應用程序相關的所有文件。 apk文件將AndroidManifest.xml文件、應用程序代碼(.dex文件)、資源文件和其他文件打成一個壓縮包。
④ Android中將資源文件打包進jar文件出現的問題
可以提供個lib project (http://developer.android.com/tools/projects/projects-eclipse.html)
先建個lib project,將 res 的內容拷過去,
將源碼編譯弄成jar包,放到lib project的libs路徑下
使用者可以直接將這個lib project導入到自己的項目中
PS: 注意設置好 proguard,如果有用到的話