博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux搭建react-native+android-studio开发环境踩坑
阅读量:5780 次
发布时间:2019-06-18

本文共 2691 字,大约阅读时间需要 8 分钟。

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


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

当然你也许会遇到以下问题:

相关问题解决

  • Thread(png-cruncher_20) has a null payload

    安装lib32zl(包名也可能是 lib32-zlib)

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

    安装lib32stdc++6(如果没有6 也可以安装 lib32stdc++5)

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

    提示:具体包名可在 搜索关键字查询。

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

    根据发行版安装qemu(具体包名可在 搜索关键字查询,或使用包管理器搜索关键字),启用kvm相关模组(一般会自动启用)。

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

    • kvm硬件支持情况

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

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

    • 检查kvm启用状况

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

        kvm_intel             225280  4kvm                   696320  1 kvm_intel

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

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

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

    usermod -aG kvm usernamenewgrp  #立即生效 也可以重启系统或者注销登录后生效
  • 启动安卓模拟器失败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

转载地址:http://kxuyx.baihongyu.com/

你可能感兴趣的文章
Angular - -ngKeydown/ngKeypress/ngKeyup 键盘事件和鼠标事件
查看>>
Android BlueDroid(一):BlueDroid概述
查看>>
Java利用httpasyncclient进行异步HTTP请求
查看>>
宿舍局域网的应用
查看>>
html代码究竟什么用途
查看>>
oracle的substr函数的用法
查看>>
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Nginx反向代理,负载均衡,redis session共享,keepalived高可用
查看>>
CentOS7 yum 安装git
查看>>
三元表达式之理解/jquery源代码分析之$.inArray实现
查看>>
STM32 mdk软件仿真时过不去时钟的问题
查看>>
Spark Streaming概念学习系列之Spark Streaming容错
查看>>
单例模式
查看>>
用友网络陈强兵:企业互联网需解决五大问题
查看>>
SMA推出Powerwall兼容Sunny Boy Storage逆变器
查看>>
云路由 vyatta 体验(二)NAT
查看>>
Python version 2.7 required, which was not foun...
查看>>
centos7.3 下安装 composer,解决Failed to decode zlib stream错误
查看>>
Git 常用命令
查看>>
在Postgres 数据库中生成36位的UUID代码
查看>>