zoukankan      html  css  js  c++  java
  • react-native android 初始化问题

    最近开始接触rn,官方起手,装了一堆工具,然后启动项目的时候出现了一堆问题,这里针对我遇到的一些问题提供一些解决方案。

    本人开发环境mac,在启动ios的时候没啥大问题,可以直接启动,这里提示一点,因为可能会启动多个,所以可以在启动的时候指定端口,防止冲突react-native run-ios --port=xxxx
    但是在启动安卓的时候出现了一堆问题,一开始使用命令react-native run-android --port=xxxx的时候,命令行报错

    $ react-native run-android
    Scanning folders for symlinks in /Users/ric/myprojs/albums/node_modules (6ms)
    Starting JS server...
    Building and installing the app on the device (cd android && ./gradlew installDebug)...
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Could not determine java version from '9.0.4'.
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    Could not install the app on the device, read the error above for details.
    Make sure you have an Android emulator running or a device connected and have
    set up your Android development environment:
    https://facebook.github.io/react-native/docs/android-setup.html
    

    无法判断java版本,这里查找了一些资料,只要把jdk换成1.8就可以了,我们这里可以装多个版本jdk,然后配置环境变量,动态切换版本即可。
    在根目录下创建.bash_profile文件,添加内容并保存

    #设置sdk路径
    export PATH=${PATH}:/Users/stevenzwzhai/Library/Android/sdk/platform-tools/:/Applications/Android Studio.app/sdk/platform-tools
    #设置idk 8
    export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8.0`
    #设置 JDK 9
    export JAVA_9_HOME=`/usr/libexec/java_home -v 9.0.4`
    #默认JDK 9
    export JAVA_HOME=$JAVA_9_HOME
    #alias命令动态切换JDK版本
    alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
    alias jdk9="export JAVA_HOME=$JAVA_9_HOME"
    
    

    source .bash_profile配置立即生效。
    然后我们切换jdk版本,命令行直接jdk8即可,继续运行上面的命令,如果报错显示sdk找不到,那么可以在项目的android目录下创建文件local.properties并保存下面内容

    sdk.dir = /Users/stevenzwzhai/Library/Android/sdk
    
    

    接着我们再次运行命令,这次不报错了,但是安卓模拟器红屏,显示

    unable to load script from assets 'index.android.bundle'.Make sure your bundle ispackged correctly or you are running a packger server.
    

    这里,有一些其他人的解决办法
    1.在androidappsrcmain下新建assets文件
    2.在项目根目录下执行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
    3.重新执行react-native run-android
    但是我这里使用却没有效果,所以我的应该是端口问题,我发现安卓在启动程序的时候头部显示,10.0.x.x:8081,因为默认是端口8081,但是我们启动的时候手动设置成了别的端口,这里就需要修改模拟器的代理,ip还是手机的ip,注意不是打开wifi那里显示的ip,而是模拟器启动我们项目时头部一条绿色的框框里的那个,只要reload那个框框就会显示,然后把端口改成你启动项目时的端口就可以了。
    这样我们就可以不用启动Android studio或者Xcode来启动项目了。

  • 相关阅读:
    HDFS under replicated blocks
    docker-compose
    shell $* 和$@ 的区别以及运算操作
    ajax与文件上传
    Django之模型层(多表操作)
    Django之模型层(单表操作)
    Django之模板层
    Django之视图层
    Django之路由层
    Django之web应用、http协议和django简介
  • 原文地址:https://www.cnblogs.com/Upton/p/9082227.html
Copyright © 2011-2022 走看看