Android:在我自己的类中获取NoClassDefFoundError

时间:2013-10-25 10:33:09

标签: android gradle android-studio osx-mavericks

我正在开发一个运行良好的Android项目。更新到 OSX Mavericks 后,当我打开Android Studio时,它显示一条消息,说它需要更新JDK。我这样做了,一切都很顺利。我可以编译应用程序,但它会在我自己的一个类中抛出一个NoClassDefFoundError

10-25 10:24:10.403  12318-12318/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.vitasalutis.client.main.parameterwidgets.graphs.ParameterWidgetGraphicalView
        at com.vitasalutis.client.main.parameterwidgets.MainWidget.<init>(MainWidget.java:215)
        at com.vitasalutis.client.main.ParameterMenuFragment.onCreateView(ParameterMenuFragment.java:107)
        at android.app.Fragment.performCreateView(Fragment.java:1695)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:861)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
        at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1137)

ParameterWidgetGraphicalView属于相同模块,并作为活动投射,因此它不是链接问题。

我正在使用API​​-17进行编译和测试。

What I have tried

  • 下载了JDK7,并在项目中使用了它。
  • 完全从头开始重新安装Android Studio(deleted all user files)。
  • 从头开始创建项目并复制粘贴上一个源。
  • 在Android Studio中编译并测试了另一个类似的项目(不是gradle)。它运作良好。
  • 回到我的Win8机器。该应用程序工作正常......

网上的其他问题表明它可能是SDK / JDK版本问题。这并不能解释为什么我能够编译/运行其他项目。

谢谢! 我想念我的Mac ......

[更新]解决了!
问题不在于它找不到ParameterWidgetGraphicalView类,而是在jar中编译它的父类。 我重新编译了那个罐子,现在它可以工作了。

1 个答案:

答案 0 :(得分:0)

解决了它。

问题不在于它找不到ParameterWidgetGraphicalView类,而是它的父类。

父母是在一个罐子里编译的。我不知道它为什么不起作用,但我重新编译了那个jar,现在它可以工作了。

可能与JDK版本有关...