4

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

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

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

  1. 创建目录“libs”并在那里添加 JAR。
  2. 还在“项目属性 → Java 构建路径 → 库”中添加了 JAR
  3. 在“项目属性 → Java 构建路径 → 订购和导出”中将 JAR 移到顶部并检查它
  4. 试图清理项目,甚至创建新项目。
  5. 安装最新版本的 Eclipse。

添加库时,我看到 APK 的大小发生了变化。

有任何想法吗?

使用的软件:

  • Eclipse:版本:Juno Release 构建 ID:20120614-1722
  • ADT:20.0.3.v201208082019-427395
4

7 回答 7

2

我有同样的问题,这里现有的答案都没有解决这个问题。

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

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

于 2012-11-04T17:10:26.890 回答
1

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

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

<uses-library android:name="org.brickred.socialauth.android.SocialAuthAdapter" />
于 2012-09-06T18:08:51.903 回答
0

You just need to add jars supplied in sdk in your build path. Have you tried other examples inside sdk. If you still face the issue, you can mail to support of socialauth android.

于 2012-09-12T08:31:48.873 回答
0

java.lang.NoClassDefFoundError 是运行时错误。这意味着在项目中放置 jar 的位置和方式并不重要(此处缺少 jar 会导致编译时错误)。重要的是确保您所需的 jar 包含在构建的结果 jar 中。尝试打开您编译/生成的 jar 文件并检查它是否包含所需的 jar 以及它们是否在正确的位置。

于 2012-09-06T08:55:14.897 回答
0

有时,更新 ADT 会导致错误。尝试将其放在文件中的<Application>标签中Manifiest.xml

<uses-library android:name="org.brickred.socialauth...(your lib name)" />

如果在您的 prj 属性中检查了 Ref Lib,请查看更多信息:Manage project libs

于 2012-09-06T08:40:31.353 回答
0

将 jar 文件粘贴到 libs 文件夹中,转到 *-> properties-> java build path->libraries-> 按 Add jars ->*选择您的应用程序 libs 文件夹并选择 jar 文件并按 ok 并清除您的项目。

于 2012-09-06T08:32:36.420 回答
0

在 libs 文件夹中拥有 socialauth-*.jar 和 socialauth-android.jar 后,尝试右键单击它并选择 Build Path > Add to Build Path。就我而言,当我在项目中获得“引用库”时,问题就消失了。

于 2012-10-16T05:49:12.903 回答