优化 firebase 报错

This commit is contained in:
2025-09-08 15:42:55 +08:00
parent 1a41cb7aef
commit b79073b295
2 changed files with 65 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
package com.aiosman.ravenow
import android.app.Application
import android.content.Context
import android.util.Log
import com.google.firebase.FirebaseApp
import com.google.firebase.perf.FirebasePerformance
/**
* 自定义Application类用于处理多进程中的Firebase初始化
*/
class RaveNowApplication : Application() {
override fun onCreate() {
super.onCreate()
// 获取当前进程名
val processName = getCurrentProcessName()
Log.d("RaveNowApplication", "当前进程: $processName")
// 在所有进程中初始化Firebase
try {
if (FirebaseApp.getApps(this).isEmpty()) {
FirebaseApp.initializeApp(this)
Log.d("RaveNowApplication", "Firebase已在进程 $processName 中初始化")
// 如果是pushcore进程禁用Firebase Performance监控
if (processName.contains(":pushcore")) {
try {
FirebasePerformance.getInstance().isPerformanceCollectionEnabled = false
Log.d("RaveNowApplication", "已在pushcore进程中禁用Firebase Performance监控")
} catch (e: Exception) {
Log.w("RaveNowApplication", "禁用Firebase Performance监控失败", e)
}
}
} else {
Log.d("RaveNowApplication", "Firebase已在进程 $processName 中存在")
}
} catch (e: Exception) {
Log.e("RaveNowApplication", "Firebase初始化失败在进程 $processName", e)
}
}
/**
* 获取当前进程名
*/
private fun getCurrentProcessName(): String {
return try {
val pid = android.os.Process.myPid()
val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as android.app.ActivityManager
val processes = activityManager.runningAppProcesses
processes?.find { it.pid == pid }?.processName ?: "unknown"
} catch (e: Exception) {
"unknown"
}
}
}