gpt4 book ai didi

android - 使用libgdx应用程序在Eclipse中启用Multidex

转载 作者:行者123 更新时间:2023-12-03 06:00:33 24 4
gpt4 key购买 nike

我不知道为什么multidex对我不起作用。我在libgdx应用程序中使用Eclipse和Gradle。我认为我已经完成了Google所说的一切,但仍然出现错误:

Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536



这是我在android项目中的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'
}

我什至从“SDK \ extras \ android \ support \ multidex \ library”中将multidex项目添加为我的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?

最佳答案

documentation说:

Depending on whether you override the Application class, perform one of the following



所以您确实在 list 中设置了此设置:
android:name="android.support.multidex.MultiDexApplication"
除非您在某处覆盖 Application类,否则这应该足够了。

但您也将此代码放在 AndroidLauncher类中(这是 Activity,而不是 Application-名称令人困惑,请参阅 LibGDX javadoc)
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(context);
Multidex.install(this);
}

因此,请删除此代码,并检查其是否可以解决问题。

您还应该阅读 Limitations of the multidex support library

另外,当您在gradle脚本中指定 <uses-sdk>时,我建议从 list 中删除 minSdkVersion标记。

关于android - 使用libgdx应用程序在Eclipse中启用Multidex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42051541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com