Я не знаю, почему multidex не работает для меня. Я использую Eclipse и Gradle с приложением libgdx. Я думаю, что я сделал все, как сказал Google, но все еще есть ошибка:Включить multidex в Eclipse с помощью приложения libgdx
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Вот мой build.gradle в андроида проекте:
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'
}
Я даже добавил multidex проект от " SDK \ extras \ android \ support \ multidex \ library "в качестве библиотеки для моего Android-проекта. Вот часть моего 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>
И в моем классе AndroidLauncher у меня есть:
public class AndroidLauncher extends AndroidApplication implements AdActionResolver, GSActionResolver, GameHelperListener
{
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Может кто-нибудь сказать мне, что случилось с этой конфигурацией? Может быть, мне нужно перейти на Android Studio?
Я удалил переопределение метода attachBaseContext и по-прежнему получаю сообщение об ошибке. Я также удалил без везения. –
Bero
Какая версия Android на вашем устройстве/эмуляторе? –
Вы также можете найти [эту проблему] (https://github.com/libgdx/libgdx/issues/3950). Они обсуждают некоторый класс, необходимый в основном файле dex, который вам может понадобиться настроить. –