Chciałbym zaproponować proste obejście, jeśli używasz proguard podczas eksportu APK.
Proguard zapewnia sposób usuwania wywołań określonych funkcji w trybie wydania. Wszelkie wywołania dzienników debugowania można usunąć za pomocą następującego ustawienia w proguard-project.txt
.
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
I ustawianie optymalizacji project.properties
.
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
Dzięki temu nie musisz przejmować się niepotrzebnym przekazywaniem obliczeń String do dziennika debugowania, na który wskazywał @Jeremyfa. Obliczenia zostały właśnie usunięte w kompilacji wydania.
Tak więc obejście dla BuildConfig.DEBUG używa tej samej funkcji proguard, co śledzenie.
public class DebugConfig {
private static boolean debug = false;
static {
setDebug(); // This line will be removed by proguard in release.
}
private static void setDebug() {
debug = true;
}
public static boolean isDebug() {
return debug;
}
}
I po ustawieniu proguard-project.txt
.
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
Wolałbym używać tego Build Automatically
zamiast wyłączać opcję, ponieważ nie zależy to od indywidualnych ustawień IDE konstruktora, ale jest utrzymywane jako zatwierdzony plik, który jest współdzielony przez programistów.