Q:如何手动创建assets目录下bundle文件
A:先在app/src/main/目录下创建assets文件夹
在package.json scripts中添加
"bundle-android":"node node_modules/react-native/local-cli/cli.js bundle --platform android --dev false --entry-file index.android.js --bundle-output ../BaseProject/app/src/main/assets/index.android.bundle --assets-dest ../BaseProject/app/src/main/res/"
注意:加粗字体为自身项目名称,我的项目名称是BaseProject
在终端项目的根目录下输入
node node_modules/react-native/local-cli/cli.js bundle --platform android --dev false --entry-file index.android.js --bundle-output ../BaseProject/app/src/main/assets/index.android.bundle --assets-dest ../BaseProject/app/src/main/res/
(与scripts中添加的一致)
创建完毕,在asstes目录下可以查看到index.android.bundle
Q:Option "--entry-file" is missing.
A:会报这个错是因为在手动创建index.android.bundle时项目目录写错了
Q:Could not resolve com.facebook.react:react-native:0.60.5.
A:因为在项目目录中有node_modules,所以需要依赖本地的react-native,否则会指向远程库中的react,版本为20.1
我的项目react版本为0.60.5
Q:项目启动会报.so库找不到(名字我忘记了),
A:因为node_modules本地库里缺少hermes-engine
终端输入:yarn add --dev hermes-engine@0.1.0
下载hermes-engine库
将库复制到node_modules里
并且在app.gradle中添加依赖
def jscFlavor = 'org.webkit:android-jsc:+'
def useIntlJsc = false
def enableHermes = project.ext.react.get("enableHermes",false);
dependencies {
if (enableHermes) {
def hermesPath = "$rootDir/node_modules/hermes-engine/android/"
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
}
在进行build
Q:Could not connect to development server after updating react-native.
A:在manifest application中添加 android:usesCleartextTraffic="true"
网友评论