java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/R$styleable;在谷歌地图集成中
Posted
技术标签:
【中文标题】java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/R$styleable;在谷歌地图集成中【英文标题】:java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/R$styleable; in google map integration 【发布时间】:2016-06-07 18:09:36 【问题描述】:我是 android 开发的新手。我正在使用 Eclipse 进行开发。现在我正在尝试在我的应用程序中集成谷歌地图 v2。但是我收到一个错误 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/R$styleable;。我已经使用以下步骤集成了它,
在https://console.developers.google.com/ 中创建新项目并启用谷歌地图并使用SHA1 指纹生成新的android api 密钥。
从C:\Adt-bundle\sdk\extras\google\google_play_services\libproject\google-play-services_lib
导入的google-play-services_lib
项目
已将 google-play-services_lib
库项目添加到我的应用程序中。
Added Permissions ACCESS_NETWORK_STATE, ACCESS_WIFI_STATE, INTERNET, ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, WRITE_EXTERNAL_STORAGE
在我的清单中还添加了使用我的应用程序包名称进行映射的权限,
**
<permission android:name="myPackageName.permission.MAPS_RECEIVE" android:protectionLevel="signature" />
<uses-permission android:name="myPackageName.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
**
在清单上添加了 api 密钥,
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="--myapikey--" />
当我在布局文件中添加 MapFragment 片段布局时,我收到一个错误 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/R$styleable; 这是我添加的 MapFragment 片段
> <fragment
> android:id="@+id/map"
> android:name="com.google.android.gms.maps.MapFragment"
> android:layout_
> android:layout_ />
【问题讨论】:
你在用proguard吗? 我已将 MapFragment 更改为 SupportMapFragment。然后我得到 java.lang.RuntimeException: Unable to start activity ComponentInfocom.shidhi.offerzone/com.shidhi.xxxxxx.HomeScreen: android.view.InflateException: Binary XML file line #29: Error inflating class fragment 【参考方案1】:如果您使用带有 gradle 的 Android Studio,请在项目的 build.gradle 文件中尝试确保您的 dependencies.... 中存在以下行,以便将相关文件导入您的项目:
compile 'com.google.android.gms:play-services-maps:8.3.0'
【讨论】:
我正在使用 Eclipse 进行开发【参考方案2】:更换你的
android:name="com.google.android.gms.maps.MapFragment"
与
android:name="com.google.android.gms.maps.SupportMapFragment"
【讨论】:
我也尝试过 SupportMapFragment 但我遇到了同样的错误。我试过这个教程android-er.blogspot.in/2012/12/… 这最后一次更新是在 2012 年 12 月,google map api 已经改变,找到一篇使用 google map api v3 的新文章。您的问题将得到解决。 我曾尝试过 SupportMapFragment 但我收到此错误 java.lang.RuntimeException: Unable to start activity ComponentInfocom.shidhi.offerzone/com.shidhi.xxxxxx.HomeScreen: android.view. InflateException: Binary XML file line #29: Error inflating class fragment 我正在使用 Eclipse 进行开发 compile fileTree(include: ['*.jar'], dir: 'libs') //testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1 .1' 编译 'com.android.support:design:23.1.1'以上是关于java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/R$styleable;在谷歌地图集成中的主要内容,如果未能解决你的问题,请参考以下文章