美文网首页Andorid的好东西
AndroidStudio+ReactNative混合开发所遇到

AndroidStudio+ReactNative混合开发所遇到

作者: 蘑菇碳烤小鸡排 | 来源:发表于2019-12-16 14:10 被阅读0次

    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"

    相关文章

      网友评论

        本文标题:AndroidStudio+ReactNative混合开发所遇到

        本文链接:https://www.haomeiwen.com/subject/kxieuctx.html