Запустите Debbuger в Android Studio с включенной Proguard
Я хочу запустить отладчик в Android, но моя проблема в сборке отладки, на которой я работаю. Причиной этого является глупый лимит метода 65К. Я включил Proguard, чтобы помочь с сокращением методов. Это возвращает меня к методам 43K, но теперь в IDE я не могу отладить пошаговое выполнение кода, так как все точки останова в IDE превращаются в красные X с ошибкой, говоря о недоступном коде. Если я закрываю отладчик, точка останова возвращается в нормальное состояние. Что-то, что мне нужно сделать в Proguard сборки Gradle, чтобы заставить это работать, или я просто шланг?
buildTypes {
debug {
debuggable true
minifyEnabled true
shrinkResources false
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
signingConfig signingConfigs.debug
}
release {
minifyEnabled true
shrinkResources true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-samsung.txt'
}
}
1 ответ
Ваша конфигурация ProGuard, вероятно, пропускает некоторые пункты.
Я думаю, вам нужно это:
-keepattributes SourceFile,LineNumberTable
Он сохранит (как следует из названия) имя исходных файлов и таблицу номеров строк. На самом деле, это предложение следует использовать и для выпуска, потому что вы не можете однозначно деобфусцировать трассировки стека без него.
И для отладки хорошо иметь это дополнительное предложение:
-keepattributes LocalVariableTable,LocalVariableTypeTable
Это сохранит имена локальных переменных.
В качестве альтернативы, вы можете рассмотреть возможность использования этих предложений (вместо или помимо предыдущих предложений) для отладки:
-dontoptimize
-dontobfuscate