我的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