我正在开发一个运行良好的 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 进行编译和测试。
- 下载JDK7,并在项目中使用它。
- 从头开始完全重新安装Android Studio(删除所有用户文件)。
- 从头开始创建项目并复制粘贴以前的源。
- 在 Android Studio 中编译并测试了另一个类似的项目(虽然不是 gradle)。它工作得很好。
- 回到我的Win8机器。该应用程序运行良好...
网上其他问题提示可能是SDK/JDK版本问题。这并不能解释为什么我能够编译/运行其他项目。
谢谢!我想念我的Mac...
[更新] 解决了!
问题不在于它找不到 ParameterWidgetGraphicalView 类,而是它的父级编译在一个 jar 中。
我重新编译了那个jar,现在它可以工作了。