Enable detectNonSdkApiUsage in debug version

pull/196/head
M66B 5 years ago
parent 6aaac2b5b8
commit 0dceee6244

@ -29,6 +29,8 @@ import android.content.res.Configuration;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.os.StrictMode;
import android.os.strictmode.Violation;
import android.util.Printer; import android.util.Printer;
import android.webkit.CookieManager; import android.webkit.CookieManager;
@ -93,6 +95,34 @@ public class ApplicationEx extends Application
} }
}); });
if (BuildConfig.DEBUG &&
Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
StrictMode.VmPolicy policy = new StrictMode.VmPolicy.Builder(StrictMode.getVmPolicy())
.detectNonSdkApiUsage()
.penaltyListener(getMainExecutor(), new StrictMode.OnVmViolationListener() {
@Override
public void onVmViolation(Violation v) {
String message = v.getMessage();
if (message != null &&
(message.contains("computeFitSystemWindows") ||
message.contains("makeOptionalFitsSystemWindows")))
return;
StackTraceElement[] stack = v.getStackTrace();
for (StackTraceElement ste : stack) {
String clazz = ste.getClassName();
if (clazz != null &&
clazz.startsWith("com.android.webview.chromium"))
return;
}
Log.e(v);
}
})
.build();
StrictMode.setVmPolicy(policy);
}
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
final boolean crash_reports = prefs.getBoolean("crash_reports", false); final boolean crash_reports = prefs.getBoolean("crash_reports", false);

Loading…
Cancel
Save