Ich weiß nicht, warum multidex funktioniert nicht für mich. Ich benutze Eclipse und Gradle mit libgdx-Anwendung. Ich denke, dass ich alles getan habe, wie Google, sagte aber immer noch einen Fehler:Enable multidex in Eclipse mit libgdx app
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Hier ist mein build.gradle in Android-Projekt:
android {
buildToolsVersion "23.0.2"
compileSdkVersion 23
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
defaultConfig {
minSdkVersion 14
// Enabling multidex support.
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
Ich habe sogar multidex Projekt von "hinzugefügt SDK \ Extras \ Android \ support \ multidex \ library "als eine Bibliothek zu meinem Android-Projekt. Hier ist ein Teil meiner AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="preferExternal"
package="XXXXXXXXXXXXXXXXXXXXXXX"
android:versionCode="175"
android:versionName="5.0.0" >
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="23" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:allowBackup="false"
android:name="android.support.multidex.MultiDexApplication" >
<activity android:name="XXXXXXXXXXXXXXX.XXXXXXXXX.BTActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="XXXX.XXXXXX.AndroidLauncher"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
</activity>
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize">
</activity>
</application>
</manifest>
Und in meinem AndroidLauncher Klasse I haben:
public class AndroidLauncher extends AndroidApplication implements AdActionResolver, GSActionResolver, GameHelperListener
{
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Kann mir jemand sagen, was mit dieser Konfiguration ist falsch? Vielleicht sollte ich nach Android Studio migrieren?
Ich habe das Überschreiben der Methode attachBaseContext entfernt und trotzdem eine Fehlermeldung erhalten. Ich entfernte auch ohne Glück. –
Bero
Was ist die Android-Version auf Ihrem Gerät/Emulator? –
Sie können auch [diese Ausgabe] (https://github.com/libgdx/libgdx/issues/3950) nützlich finden. Sie diskutieren einige Klassen in der Haupt-Dex-Datei, die Sie möglicherweise konfigurieren müssen. –