- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
该应用程序运行良好,但在 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/
该应用程序运行良好,但在 LeakCanary 中,每次关闭或暂停应用程序时都会出现泄漏。 我也尝试删除 authListener 但泄漏仍然存在。 我试图以多种不同的方式解决,但没有成功,有人可以帮
这是我的 build.gradle 应用文件: dependencies { //picture library compile 'com.github.bumptech.glide:
在我的 build.gradle 中,我使用了这个: android { compileSdkVersion 23 .... .... defaultConfig {
package com.example.qpay.currentlocation; import android.Manifest; import android.app.AlertDialog; i
我正在尝试运行我的应用程序,但是在尝试运行我的应用程序时出现错误。 构建.gradle: dependencies { implementation fileTree(dir: 'libs', inc
嗨,我是 android 和 Flutter 的新手,我在 1 小时前遇到了这个错误,我不明白如何解决它,有人可以帮我吗?先感谢您。 这是安卓文件。 def localProperties = new
这些是我在 list 文件中的依赖项 implementation fileTree(dir: 'libs', include: ['*.jar']) implementation '
我目前在运行我的项目时遇到了一些问题。 duplicate entry: com/google/android/gms/internal/zzai$zza.class 错误是说我有一个重复的依赖项,但
此错误仅在 minifyEnabled true 时出现,因此我怀疑问题与 proguard 或 R8 有关” 错误 2019-08-22 18:26:05.320 8403-8403/com.xxx
首先:让我解释一下情况,我有一个 sdk 与 google Api 一起使用并实现了很多依赖项。然后我将 lib 实现到我的新应用程序中,它也实现了依赖项。一切顺利,直到我尝试运行该应用程序。 当我(
我一直在关注本教程 implementing google maps android sdk并达到标题中提到的错误。本问题末尾提供崩溃详细信息。我一直在关注很多 SO 线程,但没有结果。到目前为止,一
我已经遇到这个问题两天了,仍然没有找到任何解决方案。我尝试更改库的版本、清理和构建项目以及使缓存无效等。 下面是我的 build.gradle 文件: apply plugin: 'com.andro
构建项目并将应用程序部署到 API 级别 22 或 25 的模拟器没问题,但是当我尝试构建 APK 或将应用程序部署到 API 级别 16 的真实设备时,我收到以下错误: Error:Executio
我正在运行仪器测试并收到此编译错误: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:tran
嗨,我正在尝试构建APK,但iam在Android Studio中面临此问题。 Error:Execution failed for task ':app:transformClassesWithJa
我已经将 Android Studio 更新到 3.4 和 Admob 库complie 'com.google.android.gms:play-services-ads:12.0.1' 到实现 '
我正在尝试在我的应用程序中实现 Firebase 云消息传递 (FCM)。我在 Build.gradle 中添加了以下依赖项并尝试构建发布构建变体。 compile 'com.google.fireb
错误: java.lang.NoSuchMethodError: No direct method (Landroid/content/Context;)V in class Lcom/google/
找不到从方法 com.google.android.gms.common.GooglePlayServicesUtil.zza 引用的类“android.app.AppOpsManager” 授权失败
当我尝试在 API 级别 22 之前的手机上运行该应用程序时,我收到此错误并且程序崩溃。但是该应用程序在 API 级别 22 的手机上运行正常。这可能是什么原因。 这是我的依赖: dependenci
我是一名优秀的程序员,十分优秀!