linux搭建react-native+android-studio开发环境踩坑

今天在archlinux下搭建react native + android,遇到一些问题,终于折腾成功,特此记录。php


参照react native文档的步骤进行安装,安装完毕后,打开Android Studio,导入你的项目项目(或者官方提供的实验项目AwesomeProject)文件夹,开启安卓虚拟机(Android Emulator,固然也能够选择真机调试),而后进入命令行,cd到项目文件夹下,中执行:react-native run-anroid就能在模拟器中进行调试了。html

固然你也许会遇到如下问题:java

相关问题解决

  • Thread(png-cruncher_20) has a null payload

    安装lib32zl(包名也多是 lib32-zlib)react

  • Error: java.util.concurrent.ExecutionException: java.lang.RuntimeException: AAPT process not ready to receive commands

    安装lib32stdc++6(若是没有6 也能够安装 lib32stdc++5)linux

    注意:对于以上两个软件安装,你可能须要手动开启lib32源(例如archlinux须要开启multilib源)。目前这两个软件还无法用64位的代替。android

    提示:具体包名可在http://pkgs.org 搜索关键字查询。ios

  • kvm相关(用以对模拟器加速)c++

    根据发行版安装qemu(具体包名可在http://pkgs.org 搜索关键字查询,或使用包管理器搜索关键字),启用kvm相关模组(通常会自动启用)。git

    参阅文档qemu#.E5.90.AF.E7.94.A8_KVM) kvm#.E5.A6.82.E4.BD.95.E4.BD.BF.E7.94.A8KVM) kernel modules#.E6.89.8B.E5.8A.A8.E5.8A.A0.E8.BD.BD.E5.8D.B8.E8.BD.BD)github

    • kvm硬件支持状况

      grep -E "(vmx|svm)" --color=always /proc/cpuinfo

      若是运行后没有显示,那么你的处理器支持硬件虚拟化

    • 检查kvm启用情况

      • bios里面查看是否开启虚拟化
      • lsmod | grep kvm 查看是否加载了kvm相关模组 有相似一下输出

        kvm_intel             225280  4
        kvm                   696320  1 kvm_intel

        通常在安装kvm后重启,系统会自动将这些模组进行加载。

  • 启动安卓模拟器提示 /dev/kvm device permission denied

    将当前用户添加到kvm用户组便可,加入当前用户名为username

    usermod -aG kvm username
    newgrp  #当即生效 也能够重启系统或者注销登陆后生效
  • 启动安卓模拟器失败Emulator: Process finished with exit code 1

    打开log有相似:

    libGL error: unable to load driver: i965_dri.so
    libGL error: driver pointer missing
    libGL error: failed to load driver: i965
    libGL error: unable to load driver: swrast_dri.so
    libGL error: failed to load driver: swrast
    ln -sf /usr/lib/libstdc++.so.6* $ANDROID_SDK_HOME/emulator/lib64/libstdc++/

更新:android studio的模拟器性能捉急 建议使用genymotion

安装genymotion后,在settings-ADB点选use custom android sdk,而后在下面选上sdk的位置(通常是xxx/android-sdk)


命令行控制模拟器

对于react-native开发,大多时候并不须要开启android studio,只是但愿快速开启android emulator进行调试,这里对从命令行启动和建立虚拟机进行简要说明。

更多命令可以使用android -h获取。

启动虚拟机

  • 列出全部创建的虚拟机

    emulator -list-avds
  • emulator @虚拟机名字 可启动一个虚拟机

    例如某个虚拟机名为Nexus_5X_API_27_x86,执行如下命令启动:

    emulator @Nexus_5X_API_27_x86

    若是当前只有一个虚拟机,能够执行一下命令直接启动:

    emulator @`emulator -list-avds`

    !错误:若是提示

    Could not launch '/home/levin/../emulator/qemu/linux-x86_64/qemu-system-x86_64': No such file or directory

    可使用$ANDROID_HOME/tools/emulator代替emulator

    $ANDROID_HOME/tools/emulator @`emulator -list-avds`

    为了方便使用,可在~/.bashrc添加相关别名,例如:

    alias avds='emulator -list-avds'  #列出全部虚拟机
    alias emulator='$ANDROID_HOME/tools/emulator'  #emulator
    #启动虚拟机(适合只有一个时)
    alias avd='$ANDROID_HOME/tools/emulator @`emulator -list-avds`'

建立/删除虚拟机

  • 列出全部sdk

    android list target

    会有相似如下内容:

    id: 3 or "android-27"

    Name: Android API 27
    Type: Platform
    API level: 27
    Revision: 1

    其中的id就是下面建立虚拟机须要的选项之一

  • 建立虚拟机

    android create avd -n new_android -t 3

    其中-n后面指定虚拟机的名字,-t后面的数字指定上面列出的id值。

    使用emulator @new_android便可启动名为new_android的虚拟机。

  • 删除虚拟机

    android delete new_android
相关文章
相关标签/搜索