从外部库引用类时的Android NoClassDefFound(IntelliJ IDEA 12)

时间:2013-07-03 17:49:01

标签: android intellij-idea

我在IntelliJ的外部模块依赖处理方面存在问题。以下是一些背景信息:

我正在编写一个实现Google地图的Android应用。对于我目前的功能集,我需要两个外部库 - Google的Play服务库和mapex(位于此处的第三方谷歌地图扩展库https://code.google.com/p/mapex/)。实际上我建议在Android Studio中构建大部分此项目,因为更容易依赖处理。但现在我在这里仍然遇到问题。


我的错误

当尝试从位于mapex包(com.androidnatic.maps)中的类构建对象时,我在启动视图所包含的活动时遇到此错误(对象尚未创建):

  

07-03 11:40:35.837:ERROR / dalvikvm(3585):找不到类com.androidnatic.maps.SimpleMapView',从方法com.example.myproject.MapActivity.showHeatMap中引用

然后,在创建时,我的应用程序强制关闭并将其留在logcat中:

  

7-03 11:40:45.467:ERROR / AndroidRuntime(3585):致命异常:主要           java.lang.NoClassDefFoundError:com.androidnatic.maps.SimpleMapView           在com.example.myproject.MapActivity.showHeatMap(MapActivity.java:492)

然而,我完全难倒,因为我的IDE给了我没有迹象表明出现任何问题!当尝试从MyProject访问类时,会自动填写类。

ide-fill-in http://www.tonyandrys.com/img/fillin.jpg

没有关于缺少类,缺少模块,类定义或任何相关内容的构建错误。

如果我尝试通过其完整包名访问该类,我会得到相同的结果。

// No dice.
final SimpleMapView mapView = new SimpleMapView(this, "apikey");
final com.androidnatic.maps.SimpleMapView mapView = new com.androidnatic.maps.SimpleMapView(this, "apikey");

就我的IDE而言,应用程序在我的手机上运行似乎只有一个问题。


这是MyProject的结构:
main-project-structure http://www.tonyandrys.com/img/mainstructure.jpg

这是我的主项目的依赖设置(我假设我搞砸了): project-structure http://www.tonyandrys.com/img/projectstructure.jpg

这是mapex库模块的结构:
mapex-lib http://www.tonyandrys.com/img/mapexstructure.jpg

我尝试访问的类文件存在于MapExLib / gen和MapExLib / src中,这些文件当前标记为源目录(蓝色)。

有没有人对如何从这里开始有任何想法?

1 个答案:

答案 0 :(得分:0)

尝试这样做: Android, IntelliJ Idea, changing module type

我遇到了同样的错误“无法从引用的方法XXX中找到类XXX”与Intellij,涉及Android测试模块和无法在任何地方找到Activity类的测试。 我在项目结构主要模块的 Facet Android 中设置了库模块(复选框)并且它有效...

告诉我们