严格模式"A resource was acquired at attached stack trace but never released"谷歌地图例外



>启动我的应用程序时,我在严格模式下收到以下异常。在我的登录活动关闭之后,在我的主活动(包含 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: 显式终止方法 "close" 未调用
10-29 16:11:22.605: E/StrictMode(1121): at dalvik.system.CloseGuard.open(CloseGuard.java:184)
10-29 16:11:22.605: E/StrictMode(1121): at java.io.RandomAccessFile.<<em>init>(RandomAccessFile.java:128)
10-29 16:11:22.605: E/StrictMode(1121): at maps.d.a.<<em>init>(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): at maps.d.b.a(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): at maps.m.h.a(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): at maps.m.a.a(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): at maps.m.u.a(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): at maps.k.n.c(未知来源)
10-29 16:11:22.605: E/StrictMode(1121): at maps.ao.b.run(未知来源)
10-29 16:11:22.605:W/System.err(1121):使用POLICY_DEATH违反严格模式 vmPolicy ;关闭。

它似乎与主要活动的谷歌地图有关。 但是那里到底需要关闭什么?任何想法/想法将不胜感激。

添加此方法:

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());
    }

并在super.onCreate(savedInstanceState);创建之前enableStrictMode(this);。在我的问题中,此解决方案有所帮助。

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

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

同时,在严格模式下禁用此类检查。

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

相关内容

最新更新