如何找出针对Strictmode策略违规的行动

时间:2014-08-19 00:46:38

标签: android adb logcat android-logcat android-debug

我是android新手并调试现有应用程序。在应用程序运行时,我收到StrictMode策略违规。我想知道在违规发生后采取了什么行动?我正在粘贴日志。

D/StrictMode( 4548): StrictMode policy violation; ~duration=68 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=31 violation=2
D/StrictMode( 4548):    at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1135)
D/StrictMode( 4548):    at libcore.io.BlockGuardOs.read(BlockGuardOs.java:148)
D/StrictMode( 4548):    at libcore.io.IoBridge.read(IoBridge.java:425)
D/StrictMode( 4548):    at java.io.RandomAccessFile.read(RandomAccessFile.java:287)
D/StrictMode( 4548):    at java.io.RandomAccessFile.read(RandomAccessFile.java:270)
D/StrictMode( 4548):    at com.intel.android.gallery3d.common.BlobCache.loadIndex(BlobCache.java:260)
D/StrictMode( 4548):    at com.intel.android.gallery3d.common.BlobCache.<init>(BlobCache.java:144)
D/StrictMode( 4548):    at com.intel.android.gallery3d.util.CacheManager.getCache(CacheManager.java:56)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.Bookmarker.getBookmark(Bookmarker.java:64)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.MoviePlayer.initPlayer(MoviePlayer.java:281)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.MoviePlayer.<init>(MoviePlayer.java:142)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.MovieActivity$1.<init>(MovieActivity.java:91)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.MovieActivity.onCreate(MovieActivity.java:90)
D/StrictMode( 4548):    at android.app.Activity.performCreate(Activity.java:5231)
D/StrictMode( 4548):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
D/StrictMode( 4548):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2188)
D/StrictMode( 4548):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2273)
D/StrictMode( 4548):    at android.app.ActivityThread.access$800(ActivityThread.java:138)
D/StrictMode( 4548):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1236)
D/StrictMode( 4548):    at android.os.Handler.dispatchMessage(Handler.java:102)
D/StrictMode( 4548):    at android.os.Looper.loop(Looper.java:149)
D/StrictMode( 4548):    at android.app.ActivityThread.main(ActivityThread.java:5045)
D/StrictMode( 4548):    at java.lang.reflect.Method.invokeNative(Native Method)
D/StrictMode( 4548):    at java.lang.reflect.Method.invoke(Method.java:515)
D/StrictMode( 4548):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
D/StrictMode( 4548):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
D/StrictMode( 4548):    at dalvik.system.NativeStart.main(Native Method)
D/StrictMode( 4548): StrictMode policy violation; ~duration=67 ms: android.os.StrictMode$StrictModeDiskWriteViolation: policy=31 violation=1
D/StrictMode( 4548):    at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1109)
D/StrictMode( 4548):    at libcore.io.BlockGuardOs.ftruncate(BlockGuardOs.java:101)
D/StrictMode( 4548):    at java.io.RandomAccessFile.setLength(RandomAccessFile.java:626)
D/StrictMode( 4548):    at com.intel.android.gallery3d.common.BlobCache.setActiveVariables(BlobCache.java:286)
D/StrictMode( 4548):    at com.intel.android.gallery3d.common.BlobCache.loadIndex(BlobCache.java:275)
D/StrictMode( 4548):    at com.intel.android.gallery3d.common.BlobCache.<init>(BlobCache.java:144)
D/StrictMode( 4548):    at com.intel.android.gallery3d.util.CacheManager.getCache(CacheManager.java:56)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.Bookmarker.getBookmark(Bookmarker.java:64)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.MoviePlayer.initPlayer(MoviePlayer.java:281)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.MoviePlayer.<init>(MoviePlayer.java:142)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.MovieActivity$1.<init>(MovieActivity.java:91)
D/StrictMode( 4548):    at com.intel.android.gallery3d.app.MovieActivity.onCreate(MovieActivity.java:90)
D/StrictMode( 4548):    at android.app.Activity.performCreate(Activity.java:5231)
D/StrictMode( 4548):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
D/StrictMode( 4548):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2188)
D/StrictMode( 4548):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2273)
D/StrictMode( 4548):    at android.app.ActivityThread.access$800(ActivityThread.java:138)
D/StrictMode( 4548):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1236)
D/StrictMode( 4548):    at android.os.Handler.dispatchMessage(Handler.java:102)
D/StrictMode( 4548):    at android.os.Looper.loop(Looper.java:149)
D/StrictMode( 4548):    at android.app.ActivityThread.main(ActivityThread.java:5045)
D/StrictMode( 4548):    at java.lang.reflect.Method.invokeNative(Native Method)
D/StrictMode( 4548):    at java.lang.reflect.Method.invoke(Method.java:515)
D/StrictMode( 4548):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
D/StrictMode( 4548):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
D/StrictMode( 4548):    at dalvik.system.NativeStart.main(Native Method)

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

转到设备设置 - &gt;开发人员选项和启用严格模式。只要您的应用违反任何一种严格模式政策,启用此选项就会以红色闪烁屏幕。这样你就可以搞清楚了。

答案 1 :(得分:1)

看看这一行:

at com.intel.android.gallery3d.common.BlobCache.loadIndex(BlobCache.java:260)

转到BlobCache类和第260行,这里是ocurr违反StrictMode的时候。

在大多数情况下,问题的原因是执行在主线程上作为I / O和网络操作延迟的操作。要解决此问题,请考虑使用异步机制来避免阻塞主线程。