谷歌地图API推出错误

问题描述:

我只是跟着从https://developers.google.com/maps/documentation/android-api/signup 指令还包括在我androidmanifest文件中的API密钥,但我收到此错误:谷歌地图API推出错误

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzabs; 

尝试,我发现这里的解决方案,但没有工作为了我。他是我的清单昂gradle这个文件: 摇篮:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    aaptOptions { 
     ignoreAssetsPattern "!values-b+sr+Latn" 
    } 
    defaultConfig { 
     applicationId "com.example.user.appsightseeing" 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile files('libs/YouTubeAndroidPlayerApi.jar') 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support:design:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.android.support:support-v4:25.3.1' 
    compile 'com.google.android.gms:play-services-analytics:9.0.0' 
    compile 'com.google.android.gms:play-services-maps:10.2.6' 
    testCompile 'junit:junit:4.12' 
} 

Androidmanifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.user.appsightseeing"> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

    <!-- 
     The ACCESS_COARSE/FINE_LOCATION permissions are not required to use 
     Google Maps Android API v2, but you must specify either coarse or fine 
     location permissions for the 'MyLocation' functionality. 
    --> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".Splashscreen" 
      android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".DetailActivityp" 
      android:parentActivityName=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".DetailActivitymo"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".DetailActivitymu" /> 
     <activity android:name=".DetailActivityth" /> 
     <activity 
      android:name=".DetailActivityf" 
      android:label="@string/title_activity_detail_activityf" 
      android:theme="@style/AppTheme" /> 

     <!-- 
      The API key for Google Maps-based APIs is defined as a string resource. 
      (See the file "res/values/google_maps_api.xml"). 
      Note that the API key is linked to the encryption key used to sign the APK. 
      You need a different API key for each encryption key, including the release key that is used to 
      sign the APK for publishing. 
      You can define the keys for the debug and release targets in src/debug/ and src/release/. 
     --> 
     <meta-data 
      android:name="com.google.android.geo.API_KEY" 
      android:value="AIzaSyACKJJ0D-BSWLYEujMz9ybjztDK-1NKIdk" /> 

     <activity 
      android:name=".MapsActivity" 
      android:label="@string/title_activity_maps"></activity> 
    </application> 

</manifest> 

那么应该怎么办?

使用Google Play服务中所有库的相同版本。

变化9.0.010.2.6用于分析:

compile 'com.google.android.gms:play-services-analytics:10.2.6' 
compile 'com.google.android.gms:play-services-maps:10.2.6' 
+0

我现在尝试它。感谢您的答复@DanielNugent。还有一个问题..你可以给我任何提示如何现在开始与谷歌地图。我有一个导航抽屉,其组件与其中的listvies组成碎片。点击打开项目的详细信息。我想在这个活动中用按钮点击想要打开地图上的位置.. –

+0

它的工作谢谢@DanielNugent。另外,如果你可以检查我的其他评论。 –

+0

@SindiB在这里看一个获取用户当前位置的Activity的示例:https://stackoverflow.com/questions/34582370/how-can-i-show-current-location-on-a-google- map-on-android-marshmallow至于ListView,如果你有位置,将它作为LatLng extra发送,用于打开Goog​​le Map活动:https://stackoverflow.com/questions/30106507/pass-longitude -and-latitude-with-intent-to-another-class –