我在Android应用中使用Maps v2 API。地图过去工作正常,但显然项目设置中的某些内容已更改,现在每次我使用地图启动视图时都会出现以下错误:
java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:269)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
我正在使用Android Studio,我按照本指南设置了库。 http://forum.xda-developers.com/showthread.php?t=2328738
我错过了什么?
答案 0 :(得分:0)
您的设置看似错误,因此您获得该异常,因为在运行时无法检索属于Google Play服务库的资源。基本上是因为该指南没有更新,你可以设置很多东西,而实际上可以避免它。
我的建议是:
将依赖项添加到Google Play服务库和支持库(只有在您需要时才会这样,这不是强制性的)。 例如:
buildscript { 存储库{ mavenCentral() } 依赖{ classpath'com.android.tools.build:gradle:0.6.1' } } apply plugin:'android'
知识库{ mavenCentral() }
android { compileSdkVersion 17 buildToolsVersion“18.0.1”
defaultConfig {
minSdkVersion 10
targetSdkVersion 17
}
}
依赖{ 编译'com.android.support:support-v4:18.0.0' 编译'com.google.android.gms:play-services:3.1。+' }
按照官方指南设置Android版Google地图v2:https://developers.google.com/maps/documentation/android/start#getting_the_google_maps_android_api_v2
检查新的位置API以获取您的位置:https://developer.android.com/google/play-services/location.html
答案 1 :(得分:0)
我也有同样的问题,显然如果您只是导入google play服务.jar文件,Android Studio将无法找到必要的资源文件。鉴于此,我通过导入GooglePlayService项目模块和.jar文件来解决它:
转到项目结构 - >将模块“/ extras / google / google_play_services / libproject / google-play-services_lib”导入您的项目。
添加导入到主项目的模块的模块依赖关系
将库'google-play-services'(导入模块后显示)添加到主项目
重建,它应该可以正常工作