在Eclipse中添加SocialAuth时的NoClassDefFoundError

时间:2012-09-06 08:15:06

标签: java android eclipse adt socialauth

我尝试在我的Android项目中添加一个外部库,但没有运气。我的应用程序在运行时遇到异常崩溃:

09-06 07:44:41.921: E/AndroidRuntime(601): java.lang.NoClassDefFoundError: org.brickred.socialauth.android.SocialAuthAdapter

找到了许多不同的魔术解决方案,但没有任何帮助:

  1. 创建了目录“libs”并在那里添加了JAR。
  2. 还在“项目属性→Java构建路径→库”
  3. 中添加了JAR
  4. 在“项目属性→Java构建路径→订单和导出”中,将JAR移至顶部并进行检查
  5. 试图清理项目,甚至创建新项目。
  6. 安装了最新版本的Eclipse。
  7. 当我添加库时,我看到APK的大小已经改变。

    有什么想法吗?

    使用的软件:

    • Eclipse:版本:Juno Release Build id:20120614-1722
    • ADT:20.0.3.v201208082019-427395

7 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,现有的答案都没有解决问题。

然后我检查了SocialAuth示例(有效),并注意到jar名称与我的不同 - socialauth-android.jar 而不是 socialauth-android-1.0.jar < /强>

我使用了 socialauth-android.jar jar,运行时错误消失了。

答案 1 :(得分:1)

您只需在AndroidManifest.xml文件中定义一个新活动。

将以下代码放在清单文件的<application> ----</application>标记内。

<uses-library android:name="org.brickred.socialauth.android.SocialAuthAdapter" />

答案 2 :(得分:0)

将jar文件粘贴到libs文件夹中转到* - &gt;属性 - &GT; java build path-&gt; libraries-&gt;   按添加jar - &gt; *选择您的应用程序li​​bs文件夹   然后选择jar文件并按确定并清除项目。

答案 3 :(得分:0)

有时,更新ADT会导致错误。请尝试将其放在<Application>文件

中的Manifiest.xml标记内
<uses-library android:name="org.brickred.socialauth...(your lib name)" />

如果您的prj属性中选中了Ref Lib,请查看更多内容:Manage project libs

答案 4 :(得分:0)

java.lang.NoClassDefFoundError是一个运行时错误。这意味着 NOT 重要的是你将jar放在项目中的位置和方式(这里丢失的jar会导致编译时错误)。重要的是确保您所需的罐子包含在生成的罐子里。尝试打开已编译/生成的jar文件,检查它是否包含所需的jar并且它们位于正确的位置。

答案 5 :(得分:0)

您只需要在构建路径中添加sdk中提供的jar。你有没有尝试过sdk中的其他例子。如果你仍然面临这个问题,你可以邮寄到socialauth android的支持。

答案 6 :(得分:0)

一旦你的libs文件夹中有了socialauth - *。jar和socialauth-android.jar,请尝试右击它并选择Build Path&gt;添加到构建路径。就我而言,当我在项目中获得“引用的库”时,问题就消失了。