gpt4 book ai didi

android - zza.zza FirebaseAuthFallbackService 泄漏

转载 作者:行者123 更新时间:2023-12-05 00:18:23 25 4
gpt4 key购买 nike

该应用程序运行良好,但在 LeakCanary 中,每次关闭或暂停应用程序时都会出现泄漏。
我也尝试删除 authListener 但泄漏仍然存在。
我试图以多种不同的方式解决,但没有成功,有人可以帮助我吗?
我的实现是:

implementation platform('com.google.firebase:firebase-bom:28.2.0')    
implementation 'com.google.firebase:firebase-auth-ktx'
implementation 'com.firebaseui:firebase-ui-auth:7.2.0'
我的剪切代码是:
class MainActivity : AppCompatActivity() {

private lateinit var auth: FirebaseAuth
private lateinit var authListener: AuthStateListener

private val signInLauncher = registerForActivityResult(
FirebaseAuthUIActivityResultContract()
) { res -> this.onSignInResult(res) }

override fun onCreate(savedInstanceState: Bundle?) {

auth = Firebase.auth
authListener = checkCurrentUser()
}

public override fun onStart() {
super.onStart()
auth.addAuthStateListener(authListener)
}

private fun checkCurrentUser() : AuthStateListener {

return AuthStateListener {
val user = it.currentUser

if (user != null && !user.isAnonymous()) {
// User is signed in

} else {
// No user is signed in
signInAnonymously()
}
}
}

private fun signInAnonymously() {
auth.signInAnonymously()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
// Sign in success, update UI with the signed-in user's information
Log.d(AnonymousTAG, "signInAnonymously:success")
//val user = auth.currentUser
} else {
// If sign in fails, display a message to the user.
Log.w(AnonymousTAG, "signInAnonymously:failure", task.exception)

}
}
}

override fun onStop() {
auth.removeAuthStateListener(authListener)
super.onStop()
}

override fun onDestroy() {
AppDatabase.distruggiInstance()
super.onDestroy()
}

}
每当我关闭应用程序或暂停它时,都会出现以下泄漏:
┬───
│ GC Root: Global variable in native code

├─ com.google.firebase.auth.api.fallback.service.zza instance
│ Leaking: UNKNOWN
│ Retaining 1,9 kB in 10 objects
│ zza instance of com.google.firebase.auth.api.fallback.service.
│ FirebaseAuthFallbackService
│ ↓ zza.zza
│ ~~~
╰→ com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService
​ instance
​ Leaking: YES (ObjectWatcher was watching this because com.google.firebase.
​ auth.api.fallback.service.FirebaseAuthFallbackService received
​ Service#onDestroy() callback and Service not held by ActivityThread)
​ Retaining 1,3 kB in 9 objects
​ key = b2e73ab0-d520-4fb8-b858-c9c7a9012f2d
​ watchDurationMillis = 5205
​ retainedDurationMillis = 202
​ mApplication instance of androidx.multidex.MultiDexApplication
​ mBase instance of android.app.ContextImpl

METADATA

Build.VERSION.SDK_INT: 30
Build.MANUFACTURER: Xiaomi
LeakCanary version: 2.7
App process name: it.xxxx.yyyyyyyyyy
Stats: LruCache[maxSize=3000,hits=2287,misses=64227,hitRate=3%]
RandomAccess[bytes=3141160,reads=64227,travel=29029887588,range=22210809,size=28
401420]
Heap dump reason: 1 retained objects, app is not visible
Analysis duration: 13350 ms```

最佳答案

编辑:2022 年 3 月 17 日
正如 Github 问题链接(下面发布的链接)中所述,这已在 Firebase 身份验证库版本 21.0.2 中得到修复。
Firebase Android 客户端 SDK 导致内存泄漏,许多用户都面临着它。
这是 Github 存储库中的一个内部错误 firebase/firebase-android-sdk问题 #2387 .

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

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