0

启动我的应用程序时,我在严格模式下遇到以下异常。就在我的登录活动关闭之后,就在我的主要活动(包含 SupportMapFragment)显示之前。

10-29 16:11:22.605:E/StrictMode(1121):在附加的堆栈跟踪中获取了资源,但从未释放。有关避免资源泄漏的信息,请参阅 java.io.Closeable。
10-29 16:11:22.605:E/StrictMode(1121):java.lang.Throwable:未调用显式终止方法“关闭”
10-29 16:11:22.605:E/StrictMode(1121):在 dalvik.system .CloseGuard.open(CloseGuard.java:184)
10-29 16:11:22.605: E/StrictMode(1121): 在 java.io.RandomAccessFile.<初始化>(RandomAccessFile.java:128)
10-29 16:11 :22.605:E/StrictMode(1121):在 maps.da< init >(未知来源)
10-29 16:11:22.605:E/StrictMode(1121):在 maps.dba(未知来源)
10-29 16: 11:22.605:E/StrictMode(1121):在 maps.mha(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): 在 maps.maa(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): 在 maps.mua(未知来源)
10- 29 16:11:22.605: E/StrictMode(1121): 在 maps.knc(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): 在 maps.ao.b.run(未知来源)
10-29 16:11:22.605: W/System.err(1121): StrictMode VmPolicy 违反 POLICY_DEATH;关闭。

它似乎与主要活动上的 GoogleMap 有关。但究竟需要在那里关闭什么?任何想法/想法将不胜感激。

4

3 回答 3

2

添加此方法:

public static void enableStrictMode(Context context) {
    StrictMode.setThreadPolicy(
    new StrictMode.ThreadPolicy.Builder()
    .detectDiskReads()
    .detectDiskWrites()
    .detectNetwork()
    .penaltyLog()
    .build());
    StrictMode.setVmPolicy(
    new StrictMode.VmPolicy.Builder()
    .detectLeakedSqlLiteObjects()
    .penaltyLog()
    .build());
    }

enableStrictMode(this);super.onCreate(savedInstanceState);onCreate之前。在我的问题中,这个解决方案有帮助。

于 2014-01-15T12:33:56.453 回答
0

Stacktrace 仅显示来自 Google Maps Android API v2 的代码,因此您将无法对其根本原因做太多事情。

我建议在gmaps-api-issues上发布一个带有此错误的问题。

同时在严格模式下禁用这种检查。

于 2013-10-29T21:35:34.313 回答
0

当我尝试运行我的应用程序时,我遇到了类似的问题。解决方法很简单:我只需要在手机上激活互联网。也许您应该在运行应用程序时激活手机正在使用的所有资源(例如 GPS、互联网)。

于 2014-06-26T07:54:49.577 回答