我設置了嚴格模式,然後我設置了Bugsense處理程序。這導致StrictMode策略違規。在AsyncTask上設置Bugsense處理程序導致嚴格模式衝突
有什麼合理的解釋爲什麼會發生?我怎樣才能擺脫它?
MyApplication.java:
android.os.StrictMode.ThreadPolicy.Builder threadPolicyBuilder = new android.os.StrictMode.ThreadPolicy.Builder();
android.os.StrictMode.VmPolicy.Builder vmPolicyBuilder = new android.os.StrictMode.VmPolicy.Builder();
android.os.StrictMode.setThreadPolicy(threadPolicyBuilder.detectAll().penaltyLog().build());
android.os.StrictMode.setVmPolicy(vmPolicyBuilder.detectAll().penaltyLog().build());
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
BugSenseHandler.initAndStartSession(MyApplication.this, "my-id");
return null;
}
}.execute();
Stacktace:
01-21 09:43:40.889: D/StrictMode(29660): StrictMode policy violation: android.os.StrictMode$StrictModeDiskReadViolation: policy=23 violation=2
01-21 09:43:40.889: D/StrictMode(29660): at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:745)
01-21 09:43:40.889: D/StrictMode(29660): at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:228)
01-21 09:43:40.889: D/StrictMode(29660): at java.io.FileInputStream.<init>(FileInputStream.java:80)
01-21 09:43:40.889: D/StrictMode(29660): at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:381)
01-21 09:43:40.889: D/StrictMode(29660): at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)
01-21 09:43:40.889: D/StrictMode(29660): at com.bugsense.trace.BugSenseHandler.initAndStartSession(Unknown Source)
01-21 09:43:40.889: D/StrictMode(29660): at com.bugsense.trace.BugSenseHandler.initAndStartSession(Unknown Source)
01-21 09:43:40.889: D/StrictMode(29660): at my.app$1.doInBackground(MyApplication.java:52)
01-21 09:43:40.889: D/StrictMode(29660): at my.app$1.doInBackground(MyApplication.java:1)
01-21 09:43:40.889: D/StrictMode(29660): at android.os.AsyncTask$2.call(AsyncTask.java:185)
01-21 09:43:40.889: D/StrictMode(29660): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
01-21 09:43:40.889: D/StrictMode(29660): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
01-21 09:43:40.889: D/StrictMode(29660): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
01-21 09:43:40.889: D/StrictMode(29660): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
01-21 09:43:40.889: D/StrictMode(29660): at java.lang.Thread.run(Thread.java:1019)
我希望你儘快修復,因爲它應該是微不足道的解決:) – pixel