我正在使用Eclipse来管理我的Android项目,该项目使用亚马逊的Android Android库。我已将库jar文件添加到./libs文件夹中,我将库添加到我的Java构建路径(项目属性 - > Java构建路径 - >库 - >添加JARS ...)。我的应用程序编译正确,但是当我在模拟器或手机上运行它时,我得到一个NoClassDefFoundError。我知道在正确编译应用程序时会抛出此错误,但导出的apk文件中的库最终会丢失。
我错过了一步吗?
编辑:
这是堆栈跟踪,直到我的应用程序引用它。
java.lang.NoClassDefFoundError: org.apache.commons.httpclient.params.HttpClientParams
at com.amazonaws.http.HttpClient.configureHttpClient(Unknown Source)
at com.amazonaws.http.HttpClient.<init>(Unknown Source)
at com.amazonaws.AmazonWebServiceClient.<init>(Unknown Source)
at com.amazonaws.services.simpledb.AmazonSimpleDBClient.<init>(Unknown Source)
at com.amazonaws.services.simpledb.AmazonSimpleDBClient.<init>(Unknown Source)
at lee.medical.icu.dataentry.MainMenuActivity.connectToDb(MainMenuActivity.java:121)
答案 0 :(得分:1)
事实证明,AWS SDK中的jar文件未正确构建。他们似乎错过了一个不再公开发布的旧Apache库。亚马逊已经更新了下载,并且库不再抛出NoClassDefFoundError。
答案 1 :(得分:0)
您是否在包视图中看到“Referenced libraries”中的库?如果没有,请在项目导航器中选择文件,右键单击它们“构建路径” - &gt; “添加到buildpath”
答案 2 :(得分:0)
我遇到了同样的问题,我在下面的帖子中找到了解决方案。 简而言之,您可能希望将外部jar文件放在libs目录中(不在lib中) 然后通过右键单击项目将其作为外部jar文件包含,然后
properties >> java build path >> add external jars >> libs/yourLibrary.jar
完整的解释是here。