Crash issues with Firebase Flutter plugin
In Android, the Firebase Flutter plugin does not support multi-process handling by default, which may cause the TCMPP mini program subprocess to crash. To use TCMPP Flutter plugins with Firebase Flutter plugin, you need to initialize Firebase in the TCMPP mini program subprocess.
Adding the TCMPP dependency
1. Go to the root directory of the Flutter project. In the Flutter project, search id "com.android.application"
The build.gradle file containing this string is located in the root directory of your Flutter Android project.
2. Add the dependencies in the Android closure of this build.gradle file:
dependencies {
compileOnly 'com.tencent.tcmpp.android:mini_core:+'
compileOnly 'com.google.firebase:firebase-common:+'
}
Creating an application class
Note:
Skip this step if the Flutter project already has a custom Android application class.
In the src directory, locate FlutterActivity:
Create a new application class in the directory where FlutterActivity is in. The package path is the same as FlutterActivity:
import android.app.Application;
public class MyApplication extends Application {}
Open and edit the AndroidManifest.xml under src > main. In the <application> tag, change the android:name to match your application class:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"><application android:name=".MyApplication" ...>...</application></manifest>
Initializing Firebase in the subprocess
1. Override the onCreate function in your Android application class. Skip this step if it is already done.
public void onCreate() {
super.onCreate();
}
2. Add the Firebase initialization code for the subprocess.
import android.app.Application;
import com.google.firebase.FirebaseApp;
import com.tencent.tmf.mini.api.TmfMiniSDK;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
...
if (TmfMiniSDK.isMiniProcess(this)) {
FirebaseApp.initializeApp(this);
}
...
}
}
The header file cannot be found in compilation in iOS
Open the project with Xcode, select the right target and go to Build Settings. Enter "Allow Non-modular Includes In Framework Modules" in the search box and set it to "Yes":
Apple M-series chip-based computer emulator issues
The current version of TCMPP SDK need to run via Rosetta on the M-series chip-based computer emulator.
For versions earlier than Xcode14: Right-click Xcode -> Get Info, and check Open using Rosetta:
For versions later than Xcode14:
Open the project with Xcode -> Product -> Destination -> Destination Architecturesk. Choose Show Rosetta Destinations:
Was this page helpful?