GoogleAnalyticsTracker.getInstance() 导致 NoClassDefFoundError

23

我正在尝试使用com.google.android.apps.analytics.GoogleAnalyticsTracker, 但在执行时出现了NoClassDefFoundError错误

GoogleAnalyticsTracker.getInstance();

我确定libGoogleAnalytics.jar已经包含在构建路径中,并且代码已经成功构建。

之前那段代码运行得非常完美,但我怀疑是在更新了最新的ADT之后出现了错误,但又不知道具体原因。

有人能给出任何建议吗?


1
请查看我在这里发布的帖子:https://dev59.com/zGkw5IYBdhLWcg3whK48#9833655 - adneal
我把依赖的 JAR 包移动到 libs 目录下,然后就好了!非常感谢! - Kurosawa Hiroyuki
3个回答

53

实际上,这是我们在使用ADT 17时遇到的问题。为了克服此异常,您需要将JAR文件放入libs文件夹中。

因此,请右键单击您的项目 -> 创建一个名为libs的文件夹。

然后按照以下步骤进行操作:

 right click (on libs folder) -->import-->File System-->browse to select your jar file and hit finish and run you project.

之后

 right click on the project --> Built Path-->java built path-->add jars select your jar file from your libs folder

我按照你的指示将jar文件放入了libs文件夹,但仍然出现了错误。能帮个忙吗?03-25 14:12:09.914: E/AndroidRuntime(1040): java.lang.NoClassDefFoundError: com.google.android.apps.analytics.GoogleAnalyticsTracker - worked
1
仍然无法工作。这个项目被交给我了。它已经有一个libs文件夹,里面有运行所需的jar文件。但是,从一开始就会在项目文件夹上得到红色感叹号。如果我按照您的说明操作,它会删除感叹号,但仍然会收到错误消息:03-25 15:04:50.292: E/AndroidRuntime(293): java.lang.NoClassDefFoundError: com.google.android.apps.analytics.GoogleAnalyticsTracker - worked
请发布一些扩展库文件夹和引用库文件夹的截图。 - Akram
2
@worked 尝试关闭您的项目,然后重新打开它。您应该会看到新的“Android Dependencies”参考文件夹。 - Tri Bui
7
对我也起作用了!我有一个名为“lib”的文件夹,里面有一些jar包。右键单击该文件夹,选择“重构->重命名”,将其重命名为“libs”,现在它可以正常工作 :) - AndroidNoob
出现问题了吗?重启你的Eclipse工作区!我可不是开玩笑的。 - Reza Mohammadi

8
为解决在使用Google Analytics v2beta库时出现的错误“NoClassdefFoundError”,您需要将此库标记为“已导出”。具体步骤如下:
  • 添加库:项目 -> 属性 -> Java Build Path -> 库 -> 添加外部JAR文件...
  • 然后在同一个窗口中找到“顺序和导出”,并通过复选框将此库标记为“已导出”。
这样,当您运行项目时,就可以找到Analytics类了!
更多详情以及为什么会出现这种情况,请参见此处

0
除了将库文件夹重命名为libs并从构建路径中删除Google Analytics库之外,我还必须在.classpath文件中添加以下内容:
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>

否则,新的Android依赖项引用文件夹将不会显示出来。 同时,关闭并重新打开项目有所帮助。
此外,在这里还找到了更多的解释:

http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接