ReactNative unable to load script from assets 'index.android.bundle'

问题描述

android studio 编译React-Native正式包后,编译过程正常,打包apk也正常,安装过后启动应用直接崩溃,查看日志提醒:reactnative unable to load script from assets 'index.android.bundle',其意思就是打包的时候index.android.bundle没有打进assets中。

解决办法

1.手动创建

  • 首先手动在main下建立一个assets文件夹
  • 然后进入项目的根目录下执行:
React-native bundle --platform Android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

注意:index.android.js 有些项目中是index.js,所以这个名称根据根目录下的文件名称而定。

  • 按照android studio 正常打包签名流程走完即可

2.查找问题原因解决

  • 查看当前SDK版本,查看原来是否支持androidx,如果项目本身没有升级androidx则需要把引用到androidx的依赖全部修改成低版本。(检测依赖命令:gradlew :app:dependencies./gradlew :app:dependencies
  • 检测gradle版本是否升级了,比如react-native0.42对应的gradle4.4,所以修改gradle/gradle-wrapper.properties下的文件到对应版本,并修改android/build.gradle:
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }

注意:3.1.2是gradle4.4对应,你应该根据自己项目而定,
Gladle与Plugin对应关系

ReactNative unable to load script from assets 'index.android.bundle'_第1张图片
Gradle与Plugin对应关系
  • 如果提醒有Must be compiled first into .flat file字样,应在gradle.properties中加上:
android.enableAapt2=false
  • 正常打包签名即可

我在项目基本就是遇到这些问题,如果你遇到的更多,可以从android studio 、 SDK 、Gradle这三个的版本入手查找问题。

你可能感兴趣的:(ReactNative unable to load script from assets 'index.android.bundle')