优化 firebase 报错
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
|
||||
<application
|
||||
android:name=".RaveNowApplication"
|
||||
android:allowBackup="false"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:fullBackupContent="@xml/backup_rules"
|
||||
@@ -36,6 +37,13 @@
|
||||
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
||||
android:value="Default Message" />
|
||||
<meta-data android:name="com.google.ar.core" android:value="optional" />
|
||||
<!-- Firebase Performance 配置:禁用自动网络请求监控 -->
|
||||
<meta-data
|
||||
android:name="firebase_performance_collection_enabled"
|
||||
android:value="true" />
|
||||
<meta-data
|
||||
android:name="firebase_performance_logcat_enabled"
|
||||
android:value="false" />
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
|
||||
57
app/src/main/java/com/aiosman/ravenow/RaveNowApplication.kt
Normal file
57
app/src/main/java/com/aiosman/ravenow/RaveNowApplication.kt
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user