1

我在 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 中,当前标记为源目录(蓝色)。

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

4

1 回答 1

0

尝试这样做: Android,IntelliJ Idea,更改模块类型

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

让我们知道

于 2014-07-05T17:59:21.123 回答