我的Android應用程序可以分爲客戶端UI層和API層。我想將它們部署爲單獨的「應用程序」,以便可以重用API層。Android:如何使用「uses-library」?
在Eclipse中,我將它們編寫爲2個獨立的Android項目。在客戶端UI項目中,我聲明瞭API項目的構建路徑(項目 - >實體 - > Java構建路徑 - >項目)。
當部署通過Eclipse中的客戶端UI項目(我的實際G1手機上),它會自動部署API項目(打包成APK)爲好。
然而,啓動客戶端UI應用程序時,我打這個錯誤:
Uncaught handler: thread main exiting due to uncaught exception
java.lang.VerifyError: myapp.android.testuiclient.Main
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1472)
at android.app.Instrumentation.newActivity(Instrumentation.java:1097)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.access$2100(ActivityThread.java:116)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4203)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
at dalvik.system.NativeStart.main(Native Method)
環顧四周,它似乎我應該在UI客戶端清單文件正在申請申報用途庫。
問題是,我應該把什麼放在android下:名稱爲uses-library?開發指南說「圖書館的名稱」,但圖書館的名稱是什麼? (我的意思是,在我的API「應用程序」,我還沒有宣佈任何庫名的任何地方。)
謝謝!從它的角度來看,選項1是最適用的。我會看看你的項目以供參考。 – 2010-02-10 00:32:35
嗨CommonsWare,我看了你的CWAC緩存項目。 1.我可以看到你使用Ant build.xml來構建和組裝JAR。對於另一個使用該JAR的項目,您如何在Eclipse中進行設置,以便(a)在編碼/編譯時解析依賴關係;(b)在部署時,它們被構建到一個APK中並部署? 2.我認爲CWAC-Cache不是單獨運行的(我是否正確?)。在這種情況下,爲什麼仍然需要使用MAIN操作和LAUNCHER類別在AndroidManifest.xml中配置Activity?這是必需的嗎? – 2010-02-10 21:58:26
簡單:我不使用Eclipse。 :-) CWAC-Cache有一個示例演示活動(如果您編譯APK),但其主要作用是「ant jar」目標來創建其他項目可以使用的實際緩存代碼的JAR。 'ant jar'任務跳過演示代碼(用'.demo'子包封裝)。 – CommonsWare 2010-02-10 22:45:33