优化 firebase 报错
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
|
android:name=".RaveNowApplication"
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||||
android:fullBackupContent="@xml/backup_rules"
|
android:fullBackupContent="@xml/backup_rules"
|
||||||
@@ -36,6 +37,13 @@
|
|||||||
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
||||||
android:value="Default Message" />
|
android:value="Default Message" />
|
||||||
<meta-data android:name="com.google.ar.core" android:value="optional" />
|
<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
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:exported="true"
|
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