在JellyBean上获取此错误:
01-11 18:26:52.030: E/AndroidRuntime(16517): FATAL EXCEPTION: main
01-11 18:26:52.030: E/AndroidRuntime(16517): java.lang.NoClassDefFoundError: android.support.v4.util.ArrayMap
01-11 18:26:52.030: E/AndroidRuntime(16517): at com.google.android.gms.common.api.GoogleApiClient$Builder.<init>(Unknown Source)
01-11 18:26:52.030: E/AndroidRuntime(16517): at com.example.services.LocationService.initGoogleApiClient(LocationService.java:82)
01-11 18:26:52.030: E/AndroidRuntime(16517): at com.example.services.LocationService.start(LocationService.java:73)
该项目仍然使用Eclipse。
关于这个问题有两个问题,以对我的情况没有帮助的方式解决:
Crash with Android 4.1 with ArrayMap - 我无法更改在我的案例中崩溃的Google代码
Android error - Caused by: java.lang.NoClassDefFoundError: android.support.v4.util.SparseArrayCompat - 它已被勾选,但无效
答案 0 :(得分:6)
通常,关于缺少android.support
类的问题意味着您拥有受影响库的旧版本,其中一个版本来自相关课程之前的版本。不幸的是,JavaDocs在指示哪个版本的支持库添加了更新的类时表现不佳。
如果您使用的是Android Studio,请确保您的support-
依赖项是相当新的,并且您的compileSdkVersion
与依赖项的主要版本号相匹配。
如果您使用的是Eclipse,则不仅要从SDK Manager下载最新的库,还要从Eclipse项目中删除旧库,并从SDK中添加库的最新副本安装。
答案 1 :(得分:0)
根据官方谷歌文档,当我将google-play-services_lib
库项目(来自ASDK附加组件)添加到我的IDE(IntellyJ Idea)时,发生了这种情况。库项目引用了google-play-services.jar
,而google-play-services_lib
又需要support-v4 jar,但这种依赖关系不包含在{{1}}中。
在logcat中还有其他关于缺少support-v4类的警告。
手动将support-v4 jar添加到主应用程序项目中解决了这个问题。
答案 2 :(得分:-4)
右键点击您的项目 - &gt;构建路径 - &gt;配置构建路径 - &gt;订单和导出标签。
确保选中“Android私有库”进行导出。
如果您已从libs /文件夹中添加了任何库,请将其删除,因为它们会自动添加到“Android私有库”部分中。