【问题标题】:React Native Release app error in play console播放控制台中的 React Native Release 应用程序错误
【发布时间】:2019-01-26 17:12:02
【问题描述】:

我将我的应用程序发送到 Play 商店,并且在一些下载之后,在 Play 控制台中出现了一些错误集群。在我的手机里,这种故障从来没有发生过。

Play 控制台错误:

java.lang.RuntimeException: 
    at android.app.ActivityThread.handleReceiver (ActivityThread.java:3334) 
    at android.app.ActivityThread.-wrap17 (Unknown Source) 
    at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1725) 
    at android.os.Handler.dispatchMessage (Handler.java:105) 
    at android.os.Looper.loop (Looper.java:164) 
    at android.app.ActivityThread.main (ActivityThread.java:6694) 
    at java.lang.reflect.Method.invoke (Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:240) 
    at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:769)
Caused by: java.lang.ClassNotFoundException: 
    at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:93)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:3329)

我的设置 Gradle:

    rootProject.name = project_name
    include ':react-native-firebase'
    project(':react-native-firebase').projectDir = new     File(rootProject.projectDir, '../node_modules/react-native-firebase/android')
    include ':react-native-snackbar'
    project(':react-native-snackbar').projectDir = new         File(rootProject.projectDir, '../node_modules/react-native-snackbar/android')
    include ':react-native-vector-icons'
    project(':react-native-vector-icons').projectDir = new     File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
    include ':react-native-text-input-mask'
    project(':react-native-text-input-mask').projectDir = new     File(rootProject.projectDir, '../node_modules/react-native-text-input-    mask/android')

    include ':app'

My build.gradle

    buildscript {
    repositories {
        google()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
        jcenter()
    }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.3'
            classpath 'com.google.gms:google-services:4.0.1'
        }
    }

    allprojects {
        repositories {
            mavenLocal()
            maven {
                url "$rootDir/../node_modules/react-native/android"
            }
            maven {
                url 'https://maven.google.com/'
                name 'Google'
            }
            google()
            jcenter()
        }
    }

ext {
    buildToolsVersion = "26.0.3"
    minSdkVersion = 16
    compileSdkVersion = 26
    targetSdkVersion = 26
    supportLibVersion = "26.1.0"
}

我的应用程序/build.gradle

...
dependencies {
    implementation project(':react-native-firebase')
    compile project(':react-native-snackbar')
    implementation project(':react-native-vector-icons')
    compile project(':react-native-text-input-mask')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    compile "com.facebook.react:react-native:+"  // From node_modules

    implementation "com.google.android.gms:play-services-base:15.0.1"
    implementation "com.google.firebase:firebase-core:16.0.1"
    implementation "com.google.firebase:firebase-messaging:17.1.0"
    implementation 'me.leolin:ShortcutBadger:1.1.21@aar' 

}

我不知道发生了什么以及如何解决它。谁能帮我解决这个问题?

【问题讨论】:

    标签: react-native google-play react-native-android


    【解决方案1】:

    这看起来像是 dex 问题。您需要启用 multidex 支持。

    由于您的目标是 minSDKVersion 16,您需要将以下内容添加到您的依赖项中

    implementation 'com.android.support:multidex:1.0.3'
    

    您还需要在defaultConfig 中的android/app/build.gradle 中启用multidex

    defaultConfig {
      // there will be other things here like applicationId, minSdkVersion, versionCode etc.
      multiDexEnabled true
    }
    

    您还需要将 MainApplication.java 中的以下行从

    public class MainApplication extends Application implements ReactApplication {

    public class MainApplication extends MultiDexApplication implements ReactApplication {

    您可以在此处https://developer.android.com/studio/build/multidex 阅读有关启用 multidex 的更多信息,因为根据您是否覆盖 Application 类,启用它有不同的方法。

    【讨论】:

    • 我尝试这样做,但没有成功。同样的错误又出现了。
    猜你喜欢
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    相关资源
    最近更新 更多