У меня проблема при интеграции Dexguard в проекты, которым необходимо включить Multidex, я не получаю ошибок компиляции, но при запуске приложения происходит сбой с этой ошибкой
java.lang.RuntimeException: Unable to instantiate application xx.xxx.xxx.XXXApp: java.lang.ClassNotFoundException: Didn't find class "xx.xxx.xxx.XXXApp" on path: DexPathList
Это файл app.gradle:
apply plugin: 'com.android.application'
...
apply plugin: 'dexguard'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "xx.xxx.xxx"
...
multiDexEnabled true
}
buildTypes {
debug {
proguardFile getDefaultDexGuardFile('dexguard-debug.pro')
proguardFile 'dexguard-project.txt'
//proguardFile 'proguard-project.txt'
}
release {
proguardFile getDefaultDexGuardFile('dexguard-release.pro')
proguardFile 'dexguard-project.txt'
//proguardFile 'proguard-project.txt'
}
}
flavorDimensions "server"
productFlavors {
dev {
applicationIdSuffix ".dev"
dimension "server"
}
...
prod {
dimension "server"
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
...
implementation 'com.android.support:multidex:1.0.1'
//support libraries
...
//play services
...
//architecture components
...
//others
...
}
apply plugin: 'com.google.gms.google-services'
В файле dexguard-project.txt я просто добавил опцию -multidex
Я также пробовал использовать -keep public class * extends android.app.Application, но безуспешно.
РЕДАКТИРОВАТЬ
Я использую собственный класс приложения, который расширяет другой пользовательский класс - поэтому я добавил фрагмент ниже
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
И это относительная часть манифеста
<application
android:name = ".XXXApp"
...
Кто-нибудь сталкивался с такой же проблемой?
MultiDexApplication@ vm345 Спасибо, но я уже отключил InstantRun из-за других проблем, которые у меня были
@Redman, посмотрите обновленный вопрос, пожалуйста
сделать настраиваемое приложение расширением приложения Multidex
В итоге решение было довольно простым, просто изменил multidexEnabled на ложный
defaultConfig {
applicationId "xx.xxx.xxx"
...
multiDexEnabled false
}
попробуйте stackoverflow.com/a/45320244/7505436