GreenDao违反Android StrictMode

时间:2015-11-10 11:50:16

标签: android greendao android-strictmode

使用GreenDao并启用StrictMode时,我得到以下DiskReadViolation:

11-10 12:17:55.777 28694-28694/? D/StrictMode: StrictMode policy violation; ~duration=80 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=589855 violation=2
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1263)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at libcore.io.BlockGuardOs.stat(BlockGuardOs.java:292)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at java.io.File.isDirectory(File.java:522)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.app.ContextImpl.validateFilePath(ContextImpl.java:1931)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:566)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:269)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at ltaps.app.onvinyl.Application.BaseApplication.setupDatabase(BaseApplication.java:267)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at ltaps.app.onvinyl.Application.BaseApplication.onCreate(BaseApplication.java:98)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.app.ActivityThread.-wrap1(ActivityThread.java)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.os.Handler.dispatchMessage(Handler.java:102)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.os.Looper.loop(Looper.java:148)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at android.app.ActivityThread.main(ActivityThread.java:5417)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at java.lang.reflect.Method.invoke(Native Method)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-10 12:17:55.777 28694-28694/? D/StrictMode:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-10 12:17:55.777 28694-28694/? D/StrictMode: StrictMode policy violation; ~duration=75 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=589855 violation=2

setupDatabase函数如下所示:

AppOpenHelper helper = new OnAppOpenHelper(this, "app", null);
SQLiteDatabase database = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(database);
daoSession = daoMaster.newSession();

我的问题是如何修复DiskReadViolation?它是否像在新线程中运行setupDatabase()一样简单,还是有其他方法可以解决这个问题?

我查看了GreenDao的文档,似乎没有提供任何帮助。

0 个答案:

没有答案