Q:如何手動創(chuàng)建assets目錄下bundle文件
A:先在app/src/main/目錄下創(chuàng)建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中添加的一致)

創(chuàng)建完畢,在asstes目錄下可以查看到index.android.bundle
Q:Option "--entry-file" is missing.
A:會報這個錯是因為在手動創(chuàng)建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"