gpt4 book ai didi

android - LicenseChecker checkAccess泄漏ServiceConnection

转载 作者:IT王子 更新时间:2023-10-28 23:32:22 29 4
gpt4 key购买 nike

每次在我的应用中按下 Back 按钮时,我都会在 LogCat 中收到此异常:

Activity has leaked ServiceConnection com.android.vending.licensing.LicenseChecker@471cc039 that was originally bound here

onCreate() 中导致此泄漏的代码是:

mLicenseCheckerCallback = new MyLicenseCheckerCallback();
mChecker.checkAccess(mLicenseCheckerCallback);

如何消除这种泄漏?

我尝试不将 MyLicenseCheckerCallback 分配给成员,认为当 Activity 进行时 onPause() 对回调的引用是造成泄漏的原因:

mChecker.checkAccess(new MyLicenseCheckerCallback());

但这并没有消除泄漏。

更新:感谢@zapl 在下方的评论,我查看了 Google 的 LicenseChecker.java:

/** Unbinds service if necessary and removes reference to it. */
private void cleanupService() {
if (mService != null) {
try {
mContext.unbindService(this);
} catch (IllegalArgumentException e) {
// Somehow we've already been unbound. This is a non-fatal error.
Log.e(TAG, "Unable to unbind from licensing service (already unbound)");
}
mService = null;
}
}

起初我以为我可能忽略了调用它,但我仔细检查了一下,我 am 在我的 Activity 的 中调用 mChecker.onDestroy(); >onDestroy().

我还在 LicenseChecker.java 中检查了 onDestroy(),它 正在 调用 unbindService:

/**
* Inform the library that the context is about to be destroyed, so that
* any open connections can be cleaned up.
* <p>
* Failure to call this method can result in a crash under certain
* circumstances, such as during screen rotation if an Activity requests
* the license check or when the user exits the application.
*/
public synchronized void onDestroy() {
cleanupService();
mHandler.getLooper().quit();
}

那么,到底发生了什么?

这是 LVL 中的错误吗?

最佳答案

我也遇到了同样的问题,根据您的更新和 zapl 的评论,我发现问题出在您使用的模拟器上。

此模拟器没有 Google Play API,LVL 无法绑定(bind)到服务,使连接保持打开状态,最后 LVL 无法通过 onDestroy 调用关闭它。

只需使用 Google APIs 而不是 Android x.x 创建一个新的 AVD 并在那里尝试您的代码,如果您在创建新的 AVD 时没有在 Target 下拉菜单中找到 Google APIs,请使用 Android SDK 管理器下载它。

关于android - LicenseChecker checkAccess泄漏ServiceConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992859/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com