我正在尝试创建一个android库项目,这样我就可以使用共享代码创建我的应用程序的精简版和完整版。按照这里的指示:
http://developer.android.com/guide/developing/projects/projects-eclipse.html
http://blog.donnfelker.com/2010/08/05/howto-android-full-and-lite-versions/
运行我的lite版本会在运行时抛出ClassNotFoundException,因为它无法从共享项目中找到活动类。就好像项目链接(属性 - > java构建路径 - > projects - > add)实际上并不包含运行时的任何.class文件。
其他人遇到此问题?我不想从我的库项目中导出.jar,因为使用这个其他方法我们可以共享活动,这是理想的。我的“lite”项目的清单,它引用了库项目活动:
<application
android:name="com.me.test.lib.App">
<activity
android:name="com.me.test.lib.ActivityMain" >
找不到作为库项目一部分的App类或ActivityMain类。
由于
异常 - ComponentInfo中的路径看起来是错误的,它应该嵌套吗?
04-29 16:49:01.759: ERROR/AndroidRuntime(2349):
java.lang.RuntimeException: Unable to instantiate activity
ComponentInfo{
com.me.test.lite/com.me.test.lib.ActivityMain}:
java.lang.ClassNotFoundException: com.me.test.lib.ActivityMain
in loader dalvik.system.PathClassLoader[/data/app/com.me.test.lite-2.apk]
答案 0 :(得分:13)
尝试访问我的工具包库中的Activity时出现此问题。确保使用库的项目将任何活动放在其自己的清单中。该工具包实际上并未在其清单中指定活动。听起来你做的那一部分是正确的。为android项目链接库与java项目不同。
对于图书馆项目
右键单击Eclipse项目,选择Properties。转到Android标签。选中“Is Library”框
使用图书馆的应用程序
右键单击Eclipse项目,选择Properties。转到Android标签。添加库项目作为参考