Kotlin с несколькими библиотеками не может поместиться в один файл dex - PullRequest
0 голосов
/ 18 апреля 2019

После добавления большого количества библиотек в java получение этой ошибки было нормальным явлением. Но теперь, благодаря kotlin, я добавил только две простые библиотеки и получаю:

Error: null, Cannot fit requested classes in a single dex file (# methods: 65881 > 65536)

Вот пример:

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.0-beta01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
//maps
implementation 'com.google.android.libraries.places:places:1.0.0'
//Permission Library
implementation 'com.karumi:dexter:5.0.0'

Я знаю, я могу исправить это, добавив мультидекс в проект. Но я хочу знать, где находятся 65536 методов !! У меня еще нет ни одного написанного метода, это всего лишь приложение hello world. Кто-нибудь?с той же проблемой? Удаление библиотек тестов, насколько это поможет?

1 Ответ

1 голос
/ 18 апреля 2019

Я попытаюсь использовать dexcount-gradle-plugin , чтобы выяснить, какие зависимости добавляют большинство методов.На следующем шаге я попытаюсь написать дерево зависимостей, чтобы выяснить, есть ли какие-то дубликаты зависимостей (полученные транзитивно).Это можно сделать с помощью чистого gradle: ./gradlew moduleName:dependencies.Если вы видите дубликаты зависимостей, вы можете легко исключить их из файла build.gradle.

...