java.lang.NoClassDefFoundError: com.urbanairship.UAirship

Posted

技术标签:

【中文标题】java.lang.NoClassDefFoundError: com.urbanairship.UAirship【英文标题】: 【发布时间】:2012-05-27 04:29:09 【问题描述】:

我有一个新的 mac (Lion 10.7.3)。 安装了 Eclipse 和 android sdk。 从 SVN 检查了我的项目,尝试运行并得到了这个丑陋的异常:

05-20 12:17:21.175: E/AndroidRuntime(32499): FATAL EXCEPTION: main
05-20 12:17:21.175: E/AndroidRuntime(32499): 
05-20 12:17:21.175: E/AndroidRuntime(32499):    at com.neo.ovs3.MyApp.onCreate(MyApp.java:16)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3292)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at android.app.ActivityThread.access$2200(ActivityThread.java:117)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at android.os.Looper.loop(Looper.java:130)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at android.app.ActivityThread.main(ActivityThread.java:3703)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at java.lang.reflect.Method.invokeNative(Native Method)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at java.lang.reflect.Method.invoke(Method.java:507)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-20 12:17:21.175: E/AndroidRuntime(32499):    at dalvik.system.NativeStart.main(Native Method)

尝试通过创建新项目、重新创建清单文件、更改 UA 库、配置构建路径以各种方式修复它。没有任何帮助。项目本身编译没有错误。

值得一提的是,在我以前的 mac(和 PC)上,相同的项目在结帐后立即运行。这意味着这不是项目问题。

有什么想法吗?

【问题讨论】:

尝试清理您的项目并重建... 已经做了。甚至尝试创建一个新项目并复制粘贴文件。没有帮助。 【参考方案1】:

Google 对使用最新 ADT 版本中的库项目的项目的处理方式进行了一些更改。 虽然这些更改是有福的,但在将旧 ADT 插件版本与新版本混合时会导致错误。

如果你在旧电脑上有一个旧的 ADT 插件并且你以这种方式提交它,它会导致错误...

如果是这样,我的建议是回到您的旧计算机并更新所有 Google 工具。 确保项目运行良好并提交到 SVN。 在新计算机上结帐,希望它能正常工作...

【讨论】:

好的,我已经更新了旧电脑上的所有谷歌工具和插件,现在我在那里面临同样的问题。这是一场灾难,因为我现在无法让我的项目继续运行任何机器:(帮助! 看来这个库不能很好地与新工具配合使用......这意味着他们做错了什么......谷歌这个:java.lang.NoClassDefFoundError: com.urbanairship.UAirship 尝试联系这个人,因为他在 2 个月前遇到了同样的问题,所以我认为他现在找到了解决方案...groups.google.com/groups/…【参考方案2】:

找到了解决办法!

这确实是 ADT 更新造成的。

我刚刚创建了一个新的android项目,发现结构与我之前的SVN项目不同。

之后我关注了这个帖子Gson NoClassDefFoundError after ADT and SDK Tools update to v17

并将旧文件复制到新项目中。最后一切正常。

我希望这能帮助遇到同样问题的人。

【讨论】:

以上是关于java.lang.NoClassDefFoundError: com.urbanairship.UAirship的主要内容,如果未能解决你的问题,请参考以下文章