我在 IntelliJ 对外部模块的依赖处理方面遇到问题。这里有一些上下文:
我正在编写一个实现 Google 地图的 Android 应用程序。对于我当前的功能集,我需要两个外部库——谷歌的播放服务库和 mapex(第三方谷歌地图扩展库位于https://code.google.com/p/mapex/)。实际上,在我被推荐迁移到 IntelliJ 之前,我在 Android Studio 中构建了这个项目的大部分内容,因为依赖处理更容易。但现在我在这里,仍然有问题。
我的错误
当尝试从位于 mapex 包 (com.androidnatic.maps) 中的类构建对象时,在启动包含视图的活动时出现此错误(对象尚未创建):
07-03 11:40:35.837: 错误/dalvikvm(3585): 找不到类 'com.androidnatic.maps.SimpleMapView',引用自方法 com.example.myproject.MapActivity.showHeatMap
然后,在创建后,我的应用程序强制关闭并将其留在 logcat 中:
7-03 11:40:45.467: 错误/AndroidRuntime(3585): 致命异常: main java.lang.NoClassDefFoundError: com.androidnatic.maps.SimpleMapView at 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 中,当前标记为源目录(蓝色)。
有人对如何从这里开始有任何想法吗?