Не удалось слить Dex - Android Studio 3.0, DexIndexOverflowException [duplicate]

$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '%$username%'") or die(mysql_error());

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}

Иногда подавление запроса как @mysql_query(your query);

71
задан Gabriele Mariotti 7 November 2015 в 10:04
поделиться

6 ответов

Это сообщение похоже, что ваш проект слишком велик.

У вас слишком много методов. Для dex может быть только 65536 методов.

Поскольку плагин gradle 0.14.0 и Build Tools 21.1.0 вы можете использовать поддержку multidex .

Просто добавьте эти строки в build.gradle:

android {

    defaultConfig {
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.1'
}

. Также в вашем Manifest добавьте класс MultiDexApplication из библиотеки поддержки multidex в элемент приложения

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication"> 
        ...
    </application>
</manifest>

Если вы используете собственный класс Application, измените родительский класс с Application на MultiDexApplication.

146
ответ дан Graham 26 August 2018 в 06:20
поделиться

Прежде чем возиться с MultiDex

Это либо слишком большое решение (используйте MultiDex), либо вы компилируете и включаете в свой проект некоторые ненужные вещи. У меня проблема с моим крошечным проектом. Вот что я сделал, чтобы исправить это:

Я удалил это из build.gradle:

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

И я вручную удалил папку сборки из корня приложения. Проблема исправлена.

3
ответ дан Andrei 26 August 2018 в 06:20
поделиться

Я просто комментировал компиляцию filetree(include: ['*.jar'], dir: 'libs') в файле build.gradle (как было предложено выше) и перестроил проект. Составлено без ошибок. Мне не нужно было перемещать папки.

0
ответ дан AndroidMechanic - Viral Patel 26 August 2018 в 06:20
поделиться

Сначала убедитесь, что minification включен в app/build.cradle:

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.config
    }
    debug {
        signingConfig signingConfigs.config
    }
}

Если это не решит проблему, включите multidex build для вашего приложения.

0
ответ дан atomsymbol 26 August 2018 в 06:20
поделиться

1) добавить зависимость к приложению build.gradle file

compile 'com.android.support:multidex:1.0.2'

2) Если вы не переопределите класс приложения, отредактируйте файл манифеста, чтобы установить имя android: name в теге следующим образом: / g1]

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">
    <application
            android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>
</manifest>

Если вы переопределите класс Application, измените его, чтобы расширить MultiDexApplication (если возможно) следующим образом:

public class MyApplication extends MultiDexApplication { ... }

Или если вы переопределите класс Application, но это не можно изменить базовый класс, вместо этого вы можете переопределить метод attachBaseContext () и вызвать MultiDex.install (this), чтобы включить multidex:

public class MyApplication extends SomeOtherApplication {
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }
}

3) Добавить поддержку multidex для defaultConfig в build.gradle

defaultConfig {
        ...
        minSdkVersion 16
        targetSdkVersion 26
        ...
        // Enabling multidex support.
        multiDexEnabled true
    }
...
45
ответ дан georgehardcore 26 August 2018 в 06:20
поделиться

Я столкнулся с этой проблемой, когда собрал весь пакет API-интерфейсов Google Play в свое приложение. Я решил проблему с помощью выборочного API.

Например, чтобы включить только API Google Fit и Android Wear, замените следующую строку в файле build.gradle:

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

с этими строками:

compile 'com.google.android.gms:play-services-fitness:11.0.2'
compile 'com.google.android.gms:play-services-wearable:11.0.2'

Проблема объясняется в следующей ссылке .

2
ответ дан Jeffin 26 August 2018 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: