У меня есть несколько проектов, которые я создаю для создания .aar. Затем я импортирую этот .aar в Android Studio под/libs. Файл build.gradle для этой зависимости выглядит следующим образом:Использование .aar NoClassDefFoundError Но класс существует и находится в Dexed
repositories{
flatDir{
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.android.gms:play-services:7.0.0'
compile 'com.android.support:multidex:+'
compile(name: 'customApi-debug', ext:'aar')
}
Поскольку библиотека является довольно большим я поставил multiDexEnabled = верно. Android Studio находит, что библиотека и автозаполнение работают. Строительные работы тоже хорошо, но работает приложение выдает следующую ошибку:
java.lang.NoClassDefFoundError: com.companyx.android.api.ui.vision.metaio.MetaIoView
at com.companyx.android.api.ui.vision.metaio.MetaIoView$$InjectAdapter.<init>(MetaIoView$$InjectAdapter.java:29)
Я несжатое и разобрали .aar и Декс файлы, соответственно, и проверить, что классы его жалующихся на самом деле существует. Я пробовал существующие подходы к решению этой проблемы, но никто из них не работал.
Кто-нибудь еще испытал это? Заранее спасибо.
Там может быть проверка ошибка с классом. Посмотрите журналы в logcat сразу после установки приложения, в то время как он odexed/oated, и посмотрите, есть ли какие-либо ошибки проверки для этого класса. – JesusFreke
По всей видимости, во время установки не было ошибок. То, что я заметил, это то, что когда я нажимаю, чтобы перейти к Activity, который использует этот источник, я получаю I/art: Отклонение повторного инициализации в ранее не пройденном классе java.lang.Class несколько раз, прежде чем я получу свое исключение. –
Да, это означает, что во время установки были некоторые ошибки проверки. Еще раз посмотрите на logcat во время установки :) – JesusFreke