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
相關文章
相關標籤/搜索