我从Eclipse导入了一个有效的应用程序到Android Studio(AS)1.0.2。我取消选中 - 尽可能用依赖项替换jar - 尽可能用依赖项替换库源 - 创建Gradle样式的模块名称 (我也尝试了这个导入,并检查了所有三个)
此应用使用谷歌地图V2,但我保留了maps.jar(来自V1),因为我有很多使用GeoPoint类的代码,我不想重写该代码。该项目在AS中编译良好,GeoPoint类在编译时被识别。
但是,在运行时,在GeoPoint类的第一个引用时抛出以下异常: NoClassDefFoundError:解析失败:Lcom / google / android / maps / GeoPoint。
编辑:将依赖项更改为“com.google.android.gms:play-services:6.5.87”后,在使用实际设备运行时,我不再收到noClassDefFound错误。但我仍然在模拟器中得到它。在更改dependecny之前可能就是这种情况。可以在模拟器中运行可能导致noClassDefFound错误吗?
我不记得曾经在Eclipse中发生这种情况:如果在编译时识别出某些东西,它总是在运行时被识别。 什么可能导致在AS中编译时无法在运行时找到GeoPoint类,但是在Eclipse中编译时可以在运行时找到它。
如果我无法解决这个问题,我将不得不坚持使用Eclipse而我不想这样做。它可能是AS的错误吗?
下图显示了AS中的项目,显示了GeoPoint类和模块buile.gradle
为了获得更好的图片:https://dl.dropboxusercontent.com/u/39662979/AS.png