MTaaS 导致资源泄漏

MTaaS causing resource leak

将二进制文件上传到 Google Play 后,根据 Pre-Launch Report.

,我的应用程序在其中一台测试设备上启动时被 Android 关闭

问题似乎是资源泄漏,原因是:

com.google.android.apps.mtaas.crawler.controller.remote.RemotePlatform

我发现 MTaaS 很可能代表 移动测试即服务

我是否正确认为测试框架泄漏资源导致测试中止?

如何阻止 MTaaS 泄漏?

Strict Mode 中来自 Galaxy S9 的完整设备日志:

注意:这是来自基于 NDK 的应用程序,只有很少的 Java 代码,并且不依赖于 FireBase。

E/StrictMode(14355): A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
E/StrictMode(14355): java.lang.Throwable: Explicit termination method 'close' not called
E/StrictMode(14355):        at dalvik.system.CloseGuard.open(CloseGuard.java:223)
E/StrictMode(14355):        at android.os.ParcelFileDescriptor.<init>(ParcelFileDescriptor.java:192)
E/StrictMode(14355):        at android.os.ParcelFileDescriptor.<init>(ParcelFileDescriptor.java:181)
E/StrictMode(14355):        at android.os.ParcelFileDescriptor.createPipe(ParcelFileDescriptor.java:425)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.common.base.IOUtils.makeParcelAsync(IOUtils.java:1)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.platform.ScreenState.writeScreenElementsToParcel(ScreenState.java:141)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.platform.ScreenState.writeToParcel(ScreenState.java:60)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.platform.ParcelableScreenState.writeToParcel(ParcelableScreenState.java:6)
E/StrictMode(14355):        at android.os.Parcel.writeParcelable(Parcel.java:1746)
E/StrictMode(14355):        at android.os.Parcel.writeValue(Parcel.java:1652)
E/StrictMode(14355):        at android.os.Parcel.writeArrayMapInternal(Parcel.java:793)
E/StrictMode(14355):        at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1506)
E/StrictMode(14355):        at android.os.Bundle.writeToParcel(Bundle.java:1181)
E/StrictMode(14355):        at android.os.Parcel.writeBundle(Parcel.java:833)
E/StrictMode(14355):        at android.os.Message.writeToParcel(Message.java:594)
E/StrictMode(14355):        at android.os.IMessenger$Stub$Proxy.send(IMessenger.java:84)
E/StrictMode(14355):        at android.os.Messenger.send(Messenger.java:57)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.controller.remote.RemotePlatform.sendMessage(RemotePlatform.java:39)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.controller.remote.RemotePlatform.sendActionResultsMessage(RemotePlatform.java:64)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.controller.remote.RemotePlatform.handlePerformActionMessage(RemotePlatform.java:24)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.controller.remote.RemotePlatform.access0(RemotePlatform.java:88)
E/StrictMode(14355):        at com.google.android.apps.mtaas.crawler.controller.remote.RemotePlatform$ControllerMessageHandler.handleMessage(RemotePlatform.java:8)
E/StrictMode(14355):        at android.os.Handler.dispatchMessage(Handler.java:105)
E/StrictMode(14355):        at android.os.Looper.loop(Looper.java:164)
E/StrictMode(14355):        at android.os.HandlerThread.run(HandlerThread.java:65)
W/System.err(14355): StrictMode VmPolicy violation with POLICY_DEATH; shutting down.

这看起来可能是 Google Play 预发布报告抓取工具中的错误。我可以通知相应的团队,但一般来说,如果发生这种情况,您可以通过 Play 控制台支持让他们知道。您可以通过 Google Play 控制台中的帮助菜单联系他们。这是在问号“?”后面图标。

我是 MTaaS 的一员,正在调查这个问题。但我没有任何特定于此 issue/crawl 的详细信息(例如,logcat 或包名称)。

此堆栈跟踪是 PLR 失败的原因还是从 logcat 中提取以帮助我们调试?如果是后者,能否分享一下 PLR 上出现的堆栈跟踪信息。