标签: android-strictmode

是否应该通过UI线程访问SharedPreferences?

随着Gingerbread的发布,我一直在尝试一些新的API,其中一个是StrictMode.

我注意到其中一个警告是为了getSharedPreferences().

这是警告:

StrictMode policy violation; ~duration=1949 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=23 violation=2
Run Code Online (Sandbox Code Playgroud)

并且它是为getSharedPreferences()在UI线程上进行的调用而给出的.

是否SharedPreferences真的应该从UI线程访问和更改?

android sharedpreferences android-strictmode

107
推荐指数
3
解决办法
3万
查看次数

Android StrictMode InstanceCountViolation

我正在运行我的应用程序,在开发中激活StrictMode,如下所示StrictMode用于较低平台版本, 并注意到一条错误消息,我不知道该考虑什么,也无法找到任何参考.

我得到一个android.os.StrictMode$InstanceCountViolation与价值观instanceslimit

实例= 3; 极限= 2

现在我想知道:

  • A)如何计算限制
  • B)如何实际发生这种违规行为,然后我会调查回避行动.

有任何想法吗?

android android-strictmode

48
推荐指数
3
解决办法
3万
查看次数

资源是在附加的堆栈跟踪中获取的,但从未发布过.有关避免资源泄漏的信息,请参阅java.io.Closeable

我在logcat中收到此消息 资源是在附加的堆栈跟踪中获取但从未发布的.有关避免资源泄漏的信息,请参阅java.io.Closeable.在哪里寻找泄漏,它是什么意思"看java.io.Closeable"

android android-strictmode

28
推荐指数
3
解决办法
3万
查看次数

如何调试Android应用程序中UnixDirectoryStream引起的泄漏

启用 StrictMode 后我注意到了这一点:

2021-05-08 11:09:42.854 14347-14773/com.myapp D/StrictMode: StrictMode policy violation: android.os.strictmode.LeakedClosableViolation: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. Callsite: close
        at android.os.StrictMode$AndroidCloseGuardReporter.report(StrictMode.java:1929)
        at dalvik.system.CloseGuard.warnIfOpen(CloseGuard.java:305)
        at sun.nio.fs.UnixDirectoryStream.finalize(UnixDirectoryStream.java:240)
        at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:291)
        at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:278)
        at java.lang.Daemons$Daemon.run(Daemons.java:139)
        at java.lang.Thread.run(Thread.java:923)
2021-05-08 11:09:42.855 14347-14773/com.myapp D/StrictMode: StrictMode policy violation: android.os.strictmode.LeakedClosableViolation: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. Callsite: close
        at android.os.StrictMode$AndroidCloseGuardReporter.report(StrictMode.java:1929)
        at dalvik.system.CloseGuard.warnIfOpen(CloseGuard.java:305)
        at …
Run Code Online (Sandbox Code Playgroud)

android android-strictmode

23
推荐指数
1
解决办法
906
查看次数

Android Honeycomb:NetworkOnMainThreadException即使使用AsyncTask而且没有严格模式?

我用我的Android 3.0应用程序遇到了NetworkOnMainThreadException.正在寻找解决方案我找到了这个,但如果我理解正确,默认设置将是关闭严格模式.

此外,我的所有网络访问都在一个AsyncTask,所以我无论如何也看不到这个例外中的重点.

所以,我现在非常绝望,我应该做些什么来阻止这个...

亲切的问候,水母

编辑:

这篇博客文章说AsyncTask应该足够了,但至少可以澄清StrictMode点.

解:

我关闭了StrictMode(它可能更好地保留一些设置,但我不能打扰......):

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Run Code Online (Sandbox Code Playgroud)

在那之后,我确实遇到了"java.lang.RuntimeException:这个线程禁止HTTP请求",但是在这里找到了解决方案.不过我有点困惑,因为AndroidHttpClient我在Android 2.0+应用程序中使用它时效果很好......

解决方案,第2部分

事实证明,使用AsyncTask是一个不错的主意但如果做错了就没用了 ......所以严格模式的反应没有任何问题.应该听,呃?;)

仍然很高兴知道它默认在Honeycomb上激活.

android android-asynctask android-3.0-honeycomb android-strictmode

16
推荐指数
2
解决办法
2万
查看次数

DropBoxManager用例?

我注意到自从FroYo(API 8)以来在Android API中引入了DropBoxManager.

它看起来像一个替代记录器,不仅能够记录文本,还能记录文件或字节数组,但我无法在任何地方找到任何有关如何以及何时使用它的详细文档.

最新的Android开发博客文章介绍StrictMode谈论它,StrictMode可以将数据添加到Dropbox的,和我们得到一个shell命令来获取这些数据.

请在此分享您对此的了解!为什么除了通常的logcat之外还实现了它?我们可以使用它来跨应用程序共享数据吗?什么样的应用程序使用它?

android android-2.2-froyo android-strictmode

15
推荐指数
1
解决办法
7571
查看次数

Android P(API 28)-StrictMode策略违规“ SmartSelectionEventTracker $ SelectionEvent;-> selectionAction”是什么意思?

我使用StrictMode来查找非SDK用法:

if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
            .detectNonSdkApiUsage()
            .penaltyLog()
            .build());
}
Run Code Online (Sandbox Code Playgroud)

现在,我违反了政策:

D/StrictMode: StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/view/textclassifier/logging/    SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/    SmartSelectionEventTracker$SelectionEvent;
        at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
        at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
        at java.lang.Class.getDeclaredMethodInternal(Native Method)
        at java.lang.Class.getPublicMethodRecursive(Class.java:2075)
        at java.lang.Class.getMethod(Class.java:2063)
        at java.lang.Class.getMethod(Class.java:1690)
        at bzi.a(SourceFile:11)
        at bzq.a(SourceFile:12)
        at org.chromium.content.browser.selection.SmartSelectionClient.<init>(SourceFile:5)
        at bzZ.a(Unknown Source:7)
        at org.chromium.android_webview.AwContents.e(SourceFile:193)
        at org.chromium.android_webview.AwContents.d(SourceFile:153)
        at org.chromium.android_webview.AwContents.<init>(SourceFile:81)
        at uY.run(SourceFile:15)
        at ahv.a(SourceFile:13)
        at ahw.run(SourceFile:2)
        at org.chromium.base.ThreadUtils.b(SourceFile:31)
        at ahv.a(SourceFile:7)
        at com.android.webview.chromium.WebViewChromiumFactoryProvider.b(SourceFile:6)
        at com.android.webview.chromium.WebViewChromium.init(SourceFile:111)
        at android.webkit.WebView.<init>(WebView.java:678)
        at android.webkit.WebView.<init>(WebView.java:604)
        at android.webkit.WebView.<init>(WebView.java:587)
        at android.webkit.WebView.<init>(WebView.java:574)
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at …
Run Code Online (Sandbox Code Playgroud)

reflection android android-strictmode

13
推荐指数
1
解决办法
7435
查看次数

姜饼仿真器实例比Froyo及以下更慢.为什么?

我不确定是否有其他人注意到它,但Gingerbread模拟器像狗一样运行,滚动,导航,互动 - 所有这些都需要更长的时间并且更加崎岖.当我尝试使用它时,我甚至在浏览器中得到了一个ANR:http://www.androidpolice.com/2010/12/06/walkthrough-and-hands-on-with-the-gingerbread-ui-the-new -gingerbread-keyboard-in-all-its-sexiness /(见底部).

我刚刚在http://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html上了解了新的StrictMode 以及关于Gbread的所有性能改进,但到目前为止我的经验表明恰好相反.

我们可以深究这一点吗?我发现自己害怕在这一点上提出一个姜饼的例子.

performance android emulation android-sdk-2.3 android-strictmode

12
推荐指数
1
解决办法
5316
查看次数

适用于较低平台版本的StrictMode

我已经开始使用Android StrictMode,并发现在开发期间始终运行它并不仅仅是我在git中创建的特殊分支上会很棒.我这样做的原因是我的应用程序要求以1.6及更高版本运行.

我在Android开发者博客上看到你可以设置它,以便通过反射激活它.我只是想知道它实际上是什么样的,如果有可能在这里(或其他地方)记录这些,而不是让所有想要使用它的人自己解决.

android android-strictmode

12
推荐指数
3
解决办法
8265
查看次数

查找违反StrictMode策略的内容

我已经在我的应用程序中启用了StrictMode,并且正如预期的那样导致一些崩溃.如何找到我的代码中的哪些内容违反了这些政策?

这是堆栈跟踪:

E/AndroidRuntime(19523): FATAL EXCEPTION: main
E/AndroidRuntime(19523): android.os.StrictMode$StrictModeViolation: policy=95 violation=2
E/AndroidRuntime(19523):        at android.os.StrictMode.executeDeathPenalty(StrictMode.java:1326)
E/AndroidRuntime(19523):        at android.os.StrictMode.access$1300(StrictMode.java:111)
E/AndroidRuntime(19523):        at android.os.StrictMode$AndroidBlockGuardPolicy.handleViolation(StrictMode.java:1319)
E/AndroidRuntime(19523):        at android.os.StrictMode$AndroidBlockGuardPolicy$1.run(StrictMode.java:1206)
E/AndroidRuntime(19523):        at android.os.Handler.handleCallback(Handler.java:605)
E/AndroidRuntime(19523):        at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(19523):        at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(19523):        at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime(19523):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(19523):        at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(19523):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
E/AndroidRuntime(19523):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
E/AndroidRuntime(19523):        at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的......它不是很有用......我知道谁杀了我的应用程序,我需要知道为什么!

谢谢.

android android-strictmode

12
推荐指数
1
解决办法
3万
查看次数