Ich würde eine einfache Problemumgehung vorschlagen wollen, wenn Sie während des APK-Exports Proguard verwenden.
Proguard bietet eine Möglichkeit, Aufrufe bestimmter Funktionen im Freigabemodus zu entfernen. Alle Aufrufe zum Debuggen von Protokollen können mit der folgenden Einstellung entfernt werden proguard-project.txt
.
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
Und die Optimierung setzt ein project.properties
.
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
Damit müssen Sie sich nicht um unnötige String-Berechnungen kümmern, die an das Debug-Protokoll übergeben werden, auf das @Jeremyfa verwiesen hat. Die Berechnungen werden gerade im Release Build entfernt.
Die Problemumgehung für BuildConfig.DEBUG verwendet also dieselbe Proguard-Funktion wie die folgende.
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;
}
}
Und nach dem Einstellen proguard-project.txt
.
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
Ich würde es vorziehen, dies zu verwenden, um die Build Automatically
Option zu deaktivieren , da dies nicht von der individuellen IDE-Einstellung des Builders abhängt, sondern als festgeschriebene Datei verwaltet wird, die von Entwicklern gemeinsam genutzt wird.