ฉันต้องการเสนอวิธีแก้ปัญหาง่ายๆหากคุณใช้ proguard ระหว่างการส่งออก APK
Proguard มีวิธีลบการโทรไปยังฟังก์ชันเฉพาะในโหมดปลด proguard-project.txt
สามารถโทรออกสำหรับการดีบักบันทึกถูกลบออกไปด้วยการตั้งค่าต่อไปนี้ใน
# Remove debug logs
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
และการตั้งค่าการเพิ่มประสิทธิภาพในproject.properties
.
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
ด้วยสิ่งนี้คุณไม่จำเป็นต้องกังวลเกี่ยวกับการคำนวณสตริงที่ไม่จำเป็นใด ๆ ที่ส่งผ่านไปยังบันทึกการดีบักที่ @Jeremyfa ชี้ไว้ การคำนวณจะถูกลบออกในรุ่นรุ่น
ดังนั้นวิธีแก้ปัญหาสำหรับ BuildConfig.DEBUG ใช้คุณสมบัติเดียวกันของ proguard ดังต่อไปนี้
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;
}
}
และต่อไปนี้การตั้งค่าในproguard-project.txt
.
-assumenosideeffects class com.neofect.rapael.client.DebugConfig {
private static *** setDebug();
}
ฉันต้องการใช้สิ่งนี้เพื่อปิดใช้งานBuild Automatically
ตัวเลือกนี้เนื่องจากไม่ได้ขึ้นอยู่กับการตั้งค่า IDE ของผู้สร้าง แต่จะเก็บรักษาเป็นไฟล์ที่มีการผูกมัดซึ่งจะแชร์ระหว่างนักพัฒนา