【问题标题】:Strict Mode "A resource was acquired at attached stack trace but never released" exception with Google MapGoogle Map 的严格模式“在附加的堆栈跟踪中获取了资源但从未释放”异常
【发布时间】:2013-10-29 14:43:14
【问题描述】:

在启动我的应用程序时,我在严格模式下遇到以下异常。就在我的登录活动关闭之后,就在我的主要活动(包含 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.init>(RandomAccessFile.java:128)
10-29 16:11:22.605: E/StrictMode(1121): at maps.d.a.init>(未知来源)
10-29 16:11:22.605:E/StrictMode(1121):在 maps.d.b.a(未知来源)
10-29 16:11:22.605:E/StrictMode(1121):在 maps.m.h.a(未知来源)
10-29 16:11:22.605:E/StrictMode(1121):在 maps.m.a.a(未知来源)
10-29 16:11:22.605:E/StrictMode(1121):在 maps.m.u.a(未知来源)
10-29 16:11:22.605:E/StrictMode(1121):在 maps.k.n.c(未知来源)
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 有关。但究竟需要在那里关闭什么?任何想法/想法将不胜感激。

【问题讨论】:

    标签: android google-maps google-maps-android-api-2 android-strictmode strict-mode


    【解决方案1】:

    添加此方法:

    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); 在 onCreate 中的 super.onCreate(savedInstanceState); 之前。在我的问题中,这个解决方案有帮助。

    【讨论】:

    • StrictMode 的工作是清除这些问题。在这里将 StrictMode 配置更改为解决方案有何意义?
    • @AsafK 您是否在代码中发现太多错误?只是停止寻找。问题解决了。
    【解决方案2】:

    Stacktrace 仅显示来自 Google Maps Android API v2 的代码,因此您将无法解决其根本原因。

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

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

    【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      相关资源
      最近更新 更多