2017-02-22 2 views
0

Ich versuche, Google Map in meiner Android-App für Lernzwecke zu verwenden. Ich habe den API-Schlüssel generiert, aber ich erhalte diesen Fehler. Ausführung fehlgeschlagen für Aufgabe 'Ausführung fehlgeschlagen für Task ': app: transformClassesWithDexForDebug'. in android

:app:transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 

Wie kann ich Fehler korrigieren? Ich bin neu in Android-App-Entwicklung so bitte Geduld mit mir.

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

    <!-- 
     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:supportsRtl="true" 
     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="my api key ,i have put it over here " /> 

     <activity 
      android:name=".MapsActivity" 
      android:label="@string/title_activity_maps"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

hier ist Gradle Build-Datei wie von Zombie gefragt.

apply { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.1" 
    defaultConfig { 
     applicationId "com.example.user.googlemap" 
     minSdkVersion 19 
     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' 
     }a 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.0.1' 
    compile 'com.google.android.gms:play-services:10.0.1' 
    testCompile 'junit:junit:4.12' 
} 

Nachdem ich Änderungen vorgenommen habe, bekomme ich jetzt diesen Fehler. * Was schief gelaufen ist: Bei der Auswertung des Projekts ': app' ist ein Problem aufgetreten.

Die Methode compileSdkVersion() für Argumente [25] auf Projekt ': app' des Typs org.gradle.api.Project konnte nicht gefunden werden.

  • Versuchen:
+0

Aktivieren Sie multidex in Ihrer Gradle-Datei – zombie

+0

sollte ich build.gradle-Datei hinzufügen? –

+0

@zombie Wie aktiviere ich Multidex in Gradle-Datei? –

Antwort

0

Ihr Fehler ... DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

Hinweis: Wenn die Anzahl der Methode Referenzen in Ihrer App die Grenze 65K übersteigt, kann die App nicht kompilieren . können Sie in der Lage sein, dieses Problem zu mildern, wenn Ihre Anwendung von nur die spezifische Google Play-Dienste spezifiziert Kompilieren APIs Ihre App verwendet, statt sie alle

Google Play Services Setup (Hervorhebung von mir)

Sie sind in der Tat Kompilieren "alle von ihnen"

compile 'com.google.android.gms:play-services:10.0.1' 

Sie scheinen nur Karten zu müssen?

Dann nur kompilieren -maps.

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    testCompile 'junit:junit:4.12' 

    compile 'com.android.support:appcompat-v7:25.0.1' 
    compile 'com.google.android.gms:play-services-maps:10.2.0' // See here 
} 

(Oder Sie können Multidex ermöglichen ... aber das ist viel des Guten für die aktuelle Ausgabe)


Dann weiß ich nicht, was Sie in die Gradle, Datei hat, aber

apply { // <-- Should be android 
    compileSdkVersion 25 

    ... 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     }a // <--- Remove this random 'a' character 
+0

pls erklären, in welcher Datei muss ich Sachen ändern? –

+0

'/ app/build.gradle' (nicht die, die sagen, keine Abhängigkeiten in sie setzen) –

+0

ich habe die gradle.build hochgeladen .können Sie dort Änderungen vornehmen? –

0

ich habe heute ähnliches Problem, nachdem ich minSdkVersion 15-21 geändert, und fügen Linie funktioniert wahr multiDexEnabled dann in Ordnung, bitte weitere Informationen hier https://developer.android.com/studio/build/multidex.html überprüfen, sieht l Dieses Problem wird durch die Multidex-Unterstützung verursacht.

+0

Es funktioniert gut, nachdem eine weitere Zeile "multiDexEnabled true" hinzugefügt wurde –

+0

können Sie Änderungen in meinem Code vornehmen? –

+0

sicher ** multiDexEnabled true ** und ** minSdkVersion 21 ** in der Gradle-Datei, unter defaultconfig Abschnitt, weil dieser Kommentar Editor ist sehr begrenzt für mich, ich weiß nicht, wie man den Text gut hier formatieren, aber ich denke Sie sollten wissen, wie Sie es ändern können –

Verwandte Themen