添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

FAQ & Troubleshooting (React Native)

Android

Picture in Picture(PIP) cannot be closed normally when killing the application in Android 11

class MainActivity: ... {
  // ...
  override fun onDestroy() {
    super.onDestroy()
    // Please add this line to your MainActivity
    // We call FireworkSdk.closePip inside FWReactNativeSDK.INSTANCE.closePip
    FWReactNativeSDK.INSTANCE.closePip()
}

Out of JVM Memory

Gradle build daemon has been stopped: JVM garbage collector thrashing and after running out of JVM memory. Add the following configuration to the file: gradle.properties .

...
org.gradle.jvmargs=-Xmx4g

Gradle plugin version is larger than 4.1.x

If your Gradle plugin version is larger than com.android.tools.build:gradle:4.1.x . Please set the compileSdkVersion = 31 and targetSdkVersion = 31 . And add the following configuration to the file: src/main/AndroidManifest.xml .

<manifest>
  <application>
    <activity
      android:name=".MainActivity"
      android:exported="true" // sdk version 31
    </activity>
  </application>
</manifest>

Use JDK11 and Gradle 7.x.

If you want to use JDK11 and Gradle 7.x. Please do:

  1. JAVA_HOME = JDK11 (system env)

  2. classpath("com.android.tools.build:gradle:7.x.x") (build.gradle)

  3. distributionUrl=https://services.gradle.org/distributions/gradle-7.x-all.zip (gradle-wrapper.properties)

  4. And change the following configuration in the file: app/firework.gradle .

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}

minCompileSdk = 31

  • If you met the issue like below:

> The minCompileSdk (31) specified in a
        dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
        is greater than this module's compileSdkVersion (android-30).
        Dependency: androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0.

Please do:

configurations.all {
  resolutionStrategy {
    force 'androidx.work:work-runtime-ktx:2.2.0'
    force 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
}

Maybe your compileSdkVersion = 30 and targetSdkVersion = 30 , your Gradle is below 6.9-all and the Gradle plugin is com.android.tools.build:gradle:4.1.x .

Okhttp version issue

If you met the issue like below:

/data/app/com.thesouledstore-1b4KZ7kSaE_DlLmco_iLxQ==/base.apk!classes5.dex)
2022-02-25 21:06:33.506 16304-18932/? E/com.newrelic.android: TransactionStateUtil: Attempting to convert network exception java.io.IOException to error code.
2022-02-25 21:06:33.508 16304-18932/? E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
    Process: com.thesouledstore, PID: 16304
    java.lang.NoSuchMethodError: No static method delimiterOffset(Ljava/lang/String;IILjava/lang/String;)I in class Lokhttp3/internal/Util; or its super classes (declaration of 'okhttp3.internal.Util' appears in /data/app/com.thesouledstore-1b4KZ7kSaE_DlLmco_iLxQ==/base.apk!classes5.dex)

Maybe your okhttp version is 3.x.x . Please do:

Solution: force the version to your app/firework.gradle file, like below:

configurations.all {
  resolutionStrategy {
    force 'com.squareup.okhttp3:okhttp:3.12.12'
    force 'com.squareup.okhttp3:logging-interceptor:3.12.12'
    force 'com.squareup.okhttp3:okhttp-urlconnection:3.12.12'
}

Glide version issue

Glide issue: if you met the issue like below:

GeneratedAppGlideModuleImpl is implemented incorrectly. 
If you've mannually implemented this class, remove your implementation. 
The Annotation processor will generate a correct implementation.
(FastImageViewManager.java:xxx)

Maybe your react-native-fast-image version is >7.x.x and <8.1.4 . Please do:

Solution 1: add the excludeAppGlideModule = true to your android/build.gradle file, like below:

buildscript {
    ext {
        excludeAppGlideModule = true