
我还在开发依赖于SiriRestClIEnt库的AndroID用户界面应用程序(SiriRestClientUI).我通过Maven管理对SiriRestClIEnt库的依赖.
两个项目都在Eclipse中独立构建和部署.
问题:
由于我开始通过Maven管理SiriRestClIEnt库对SiriRestClIEnt库的依赖,如果我在Eclipse中同时打开了库项目和SiriRestClIEntUI,当我尝试将SiriRestClIEntUI应用程序部署到设备时,我得到NoClassDefFoundError.
例如:
11-01 16:11:52.288: E/AndroIDRuntime(9409): java.lang.NoClassDefFoundError: edu.usf.cutr.siri.androID.clIEnt.config.SiriJacksonConfig11-01 16:11:52.288: E/AndroIDRuntime(9409): at edu.usf.cutr.siri.androID.ui.MainActivity.onCreate(MainActivity.java:100)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.app.Activity.performCreate(Activity.java:4470)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1934)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.app.ActivityThread.access0(ActivityThread.java:128)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.os.Handler.dispatchMessage(Handler.java:99)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.os.Looper.loop(Looper.java:137)11-01 16:11:52.288: E/AndroIDRuntime(9409): at androID.app.ActivityThread.main(ActivityThread.java:4514)11-01 16:11:52.288: E/AndroIDRuntime(9409): at java.lang.reflect.Method.invokeNative(Native Method)11-01 16:11:52.288: E/AndroIDRuntime(9409): at java.lang.reflect.Method.invoke(Method.java:511)11-01 16:11:52.288: E/AndroIDRuntime(9409): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)11-01 16:11:52.288: E/AndroIDRuntime(9409): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:747)11-01 16:11:52.288: E/AndroIDRuntime(9409): at dalvik.system.NativeStart.main(Native Method)`
这是图书馆和应用程序同步开发过程中的一个主要烦恼,因为我发现的唯一解决方法是编辑库代码,构建库项目,关闭库项目,然后执行SiriRestClIEntUI应用程序.
我认为问题源于Eclipse / Maven在库项目打开时如何处理Maven依赖项.
这是一个Eclipse屏幕截图,显示了SiriRestClIEntUI项目,当库项目(SiriRestClIEnt,它上面)被CLOSED时:
您可以在我的本地Maven存储库中找到“Maven DepedencIEs”下的sirirestclIEnt-1.0.0-SNAPSHOT.jar文件,这就是我想要的.在这种配置下,一切正常.
但是,当我打开SiriRestClIEnt库项目时,我的“Maven DepedencIEs”条目发生了变化,JAR文件消失了,而是显示了项目的文件夹:
如果我在两个项目打开时尝试启动SiriRestClIEntUI,那么我得到NoClassDefFoundError.因此,似乎Eclipse正在重定向项目构建,并且不包含库类.
问题:
如何配置Eclipse / Maven以使其始终依赖于本地Maven存储库中的JAR文件,而不是将Maven依赖项切换到本地项目?
或者,有没有另一种方法来摆脱这种配置的NoClassDefFoundError?
库项目的pom.xml文件是here.
SiriRestClIEntUI应用程序项目的pom.xml文件是here.
@H_403_46@解决方法 试试这个:右键点击项目 – >属性 – > Maven – >取消选中从Workspace项目中解析依赖项. 总结以上是内存溢出为你收集整理的使用Android应用程序,Maven和Eclipse开发库的NoClassDefFoundError全部内容,希望文章能够帮你解决使用Android应用程序,Maven和Eclipse开发库的NoClassDefFoundError所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)