问题标签 [android-strictmode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3847 浏览

android - Ksoap2 在 android 3.0 中无法工作,获取 NetworkOnMainThreadException

Ksoap2 在 Android 3.0 中不工作。Logcat 显示 NetworkOnMainThreadException:

0 投票
6 回答
26548 浏览

android - Android StrictMode InstanceCountViolation

我正在使用开发中激活的 StrictMode 运行我的应用程序,如此处记录的StrictMode 用于较低平台版本 ,并注意到一条错误消息,我不知道要考虑什么,也找不到任何参考。

我得到了一个android.os.StrictMode$InstanceCountViolationinstanceslimit例如

实例=3;限制=2

现在我想知道:

  • A) 限额是如何计算的
  • B)这种违规行为如何实际发生,然后我会调查规避行为。

有任何想法吗?

0 投票
1 回答
990 浏览

android - Android StrictMode 报告误报

我一直在尝试在 StrictMode 中运行我的应用程序,以检查是否存在任何可能偷偷摸摸的隐藏问题。我遇到的一个问题是,在使用 ContentResolver 时,Leaked DatabaseConctions 似乎是误报。

经过一些实验后,问题简化为以下两行代码:

上面的 2 行生成以下 StrictMode 违规:

我假设这是特定于 Cursor 由 contentProvider 返回的事实(因此它不是直接的 SQLite 游标)。

如果这确实是误报或确实存在泄漏的光标,是否有人有任何见解。

0 投票
2 回答
16602 浏览

android - Android Honeycomb:即使在使用 AsyncTask 且没有严格模式时出现 NetworkOnMainThreadException?

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

此外,我所有的网络访问都在一个 中AsyncTask,所以无论如何我都看不到这个异常的意义。

所以,我现在很绝望我应该做些什么来防止这种情况......

亲切的问候,水母

编辑:

这个博客条目说 AsyncTask 应该足够了,但至少澄清了 StrictMode 点。

解决方案:

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

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

解决方案,第 2 部分

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

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

0 投票
2 回答
2314 浏览

android - 严格模式 + 分析

我正在使用适用于 Android 的 Google Analytics,但打开 StrictMode 后,我收到很多这样的消息:

我可以忽略它吗?我还尝试将 tracker.trackingPageView(...) 放入 AsyncTask - 结果相同。

这是我对 StrictMode 的设置:

我真的很感激任何帮助 - 在此先感谢!麦克风

0 投票
2 回答
2504 浏览

android - 多次打开子活动会导致 InstanceCountViolation 尽管被销毁

我正在开发一个项目,该项目具有较低级别的活动,称为RecordView显示记录详细信息,例如图像、拍摄日期和时间以及纬度/经度信息。我没有尝试操纵相机进行地理标记和访问 exif 数据,而是尝试实现一个位置侦听器来获取第一次拍摄图像的位置(按下按钮时)。这种方法有效 - 我让我的位置正确显示和更新数据库中的记录(稍后返回视图显示从头开始的位置)。但是,如果我退出当前RecordView,然后再输入两个(任意组合),程序将因错误而崩溃InstanceCountViolation(下面重印了完整的错误)。当我覆盖的生命周期方法时RecordView为了显示每个被调用的时间,我们发现它在被再次调用之前被销毁了。也就是说,RecordView在任何给定时间似乎都不存在超过一个。

所以我的问题归结为:该错误来自哪里,我该如何解决?

被毁坏了有什么谎言吗?LocationListener 是否坐在某个地方并导致问题?是不是一些不相关的东西可能会提供虚假错误?

另外,我是否应该进行可怕的硬编码修复并仅提高允许的RecordView实例限制?还是继续寻找另一种方法(例如,我试图通过PendingIntent.getBroadcast(...)调用请求单个更新)?

作为参考,此错误已出现在 3.1 的模拟器和实际平板电脑(Xoom,3.1)上。注释掉监听器更新代码似乎可以避免崩溃(编辑 2:我似乎错了)。与侦听器相关的代码如下(可以在类内的公共方法中找到updateLocationRecordView

完整的错误:

编辑:

我已经确定了两件事。

第一个是当 Logcat 显示RecordView活动被破坏时,LocationListener它被正确断开(被破坏了?无论如何它都是空的)。然而,听众似乎是从坟墓之外更新的——也就是说,我有时会在更高级别的活动屏幕上看到关于 GPS 更新的 Toast 消息,并且 GPS 信息似乎已经更新。

第二个是它并没有完全崩溃 - 它似乎是强制关闭RecordView而不是整个应用程序。该应用程序的主要部分似乎基本上被最小化了。

编辑2:

我们最近添加了一个使用新活动的首选项屏幕,这InstanceCountViolationRecordView. 我们已经验证,在 Activity 中无需进行任何更改即可发生错误:只需打开几次即可。下面是我们如何从主要活动中打开子活动的示例:

所以现在我想知道 Intent 如何处理活动创建和删除是否存在问题。

0 投票
1 回答
3047 浏览

android - 使用 StrictMode 的 MapActivity 不起作用 - 帮助

在阅读了 Tim Bray 在 Android 开发者博客上的文章“New Gingerbread API: StrictMode”之后,我决定开始在我的项目中使用它。我希望能在性能问题成为问题之前帮助他们发现问题。

我的问题是,每次我尝试加载我的 MapActivity 应用程序都会死掉,但只有在启用 StrictMode 时。即使是简单的、没有代码的活动,它也会死掉。

有没有人成功地将 StrictMode 与 MapActivity 一起使用?如果是这样,诀窍是什么?

LogCat 的输出是:

活动代码是:(我知道有额外的东西,但我想看看正在执行哪些标准方法)

布局是:

0 投票
1 回答
403 浏览

android - 使用 CursorLoader 并离开当前活动时,StrictMode 抛出 DatabaseObjectNotClosedException

我正在使用一个非常基本的示例,在该示例中,我使用CursorLoader内容提供者的 uri 创建一个并填充地图。一切都很顺利,但是当我离开该活动时,我会DatabaseObjectNotClosedException被 StrictMode 抛出。我了解CursorLoader与光标的交易,所以我不能自己关闭它。那么为什么会这样呢?

使用 ListFragment 时不会出现此问题,我想这是因为在onLoaderReset()I do adapter.swapCursor(null). 但是我应该在方法中的地图片段(或我没有列表的任何其他类型的片段)中做onLoaderReset()什么?目前,我没有做任何事情,因为我没有引用返回的光标。

0 投票
1 回答
625 浏览

android - 2.3 之前的 StrictMode

我在 2.3 之前搜索了启用 StrictMode,但我找不到任何有用的东西。我发现的只是 StrictMode 是在 2.3 中引入的,您可以使用反射来检查是否存在这样的严格模式

但是有什么方法可以在 2.3 之前的版本中启用严格模式?例如 Fragments api 适用于 3.0,但代码中包含 Fragments api 库,可以选择使用所有高于 1.6 版本的 Fragments。严格模式有这样的东西吗?或者是否有任何解决方法可以在 2.3 之前的版本中使用严格模式?

谢谢

0 投票
3 回答
2998 浏览

android - Android WebView 导致 StrictMode 违规

我注意到 StrictMode 正在大声抱怨 WebView 创建。有什么方法可以提高 WebView 对象的启动性能?我在 onCreate() 方法中从 XML 实例化。

这是许多 StrictMode 警告中的第一个: