AndroidStudio+ReactNative混合開發(fā)所遇到的問題

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"

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容