React Native初探--從安裝運(yùn)行首個(gè)app到填坑指南

好多人說rn好用,一直要推薦我用绊寻,我就不信了花墩,來安裝玩一下試試效果。實(shí)踐出真知澄步!安裝過程各種坑观游,工具太多了,太麻煩了驮俗,差點(diǎn)放棄(還好堅(jiān)持下來呢)懂缕。

本文示例代碼請查看Github: https://github.com/AweiLoveAndroid/Hybrid-sample

一、安裝環(huán)境

(一)下載JDK 1.8(必須是1.8版本)
PATH:%JAVA_HOME%\bin
CLASSPATH:.;%JAVA_HOME%\lib\tools.jar (一定不要忘了前面的點(diǎn)) 
(二)Android Studio王凑、SDK搪柑、JDK以及模擬器配置(如果是真機(jī)運(yùn)行不需要安裝模擬器)
  • (1)Android Studio下載

    Android Studio的下載地址請看:https://developer.android.google.cn/studio/#downloads
    安裝方式:指定安裝路徑,一直點(diǎn)擊下一步就可以了索烹。然后解壓到一個(gè)英文目錄即可工碾。

  • (2)Android Studio安裝

1.雙擊桌面的Android Studio圖標(biāo)(或者進(jìn)入解壓之后的路徑/bin目錄,雙擊studio.exe)百姓,會(huì)出現(xiàn)一個(gè)導(dǎo)入配置的窗口渊额,如圖所示。

im

2.因?yàn)槭浅醮未蜷_Android Studio垒拢,我們一般不需要導(dǎo)入配置旬迹,直接點(diǎn)擊Do not import settings,點(diǎn)擊OK進(jìn)入下一步求类,這時(shí)候會(huì)顯示logo加載頁面奔垦。如圖所示。

3.然后會(huì)有一個(gè)彈窗如圖所示尸疆。因?yàn)槭状卧试SAndroid Studio它找不到SDK,會(huì)提示你設(shè)置代理椿猎,我這里選擇取消惶岭。

然后我們打開android studio安裝路徑/bin目錄,找到idea.properties,打開這個(gè)文件,在末尾加上一行
disable.android.first.run=true,那么以后再打開android studio就不會(huì)再出現(xiàn)這個(gè)提示犯眠。如圖所示:

4.接下來我點(diǎn)擊next進(jìn)入下一步按灶,如圖所示。

5.然后會(huì)提示我安裝版本筐咧,第一個(gè)是標(biāo)準(zhǔn)安裝鸯旁,第二個(gè)是自定義安裝,我們這里選擇默認(rèn)的第二個(gè)自定義安裝嗜浮,直接點(diǎn)擊next進(jìn)入下一步既可。如圖所示:

image.png

6.然后就是設(shè)置風(fēng)格摩疑,這里有白色和黑色可選危融,我選擇的右邊的黑色,如圖所示雷袋。

7.接下來是設(shè)置安裝選項(xiàng)吉殃,如圖所示。默認(rèn)會(huì)安裝Android SDK 以及Android SDK Platform楷怒,由于我電腦用的Intel的CPU蛋勺,所以我這里勾選了第三個(gè)選項(xiàng)Intel HAXM,這個(gè)主要是啟動(dòng)模擬器時(shí)加速用的鸠删,順便我把第四個(gè)模擬器選項(xiàng)也勾選上抱完,后續(xù)如有需要可以在模擬器安裝App進(jìn)行操作。最下面是sdk的安裝路徑刃泡。默認(rèn)是在C盤巧娱,一般我們要選定一個(gè)非C盤的安裝目錄,比如我這里選擇的是D:\develop\sdk路徑烘贴。選好之后點(diǎn)next進(jìn)入下一步禁添。

8.這里是設(shè)置Intel HAXM默認(rèn)的大小,我這里就選擇默認(rèn)的2G桨踪,如圖所示老翘。點(diǎn)擊next進(jìn)入下一步。

9.現(xiàn)在就開始安裝sdk了锻离,稍作等待既可安裝完成了铺峭,如圖所示。

10.安裝完成之后汽纠,點(diǎn)擊Finish表示安裝完成逛薇。如圖所示。

  • (3)JDK 配置

1.首先打開java官網(wǎng)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html疏虫,找到對應(yīng)版本下載永罚,如圖所示啤呼,我的電腦是Win7 64位,我就選擇最后一個(gè)下載呢袱。

2.下好之后官扣,雙擊安裝,一直點(diǎn)擊下一步羞福,選擇安裝路徑惕蹄,安裝完畢之后,配置環(huán)境變量治专。

打開環(huán)境變量的步驟:桌面“我的電腦”(或“計(jì)算機(jī)”)--> 右鍵“屬性”--> 選擇“高級系統(tǒng)設(shè)置”-->選擇下方的“環(huán)境變量”卖陵。

a.在彈出的“環(huán)境變量”窗口中,點(diǎn)擊下方的“新建”按鈕张峰,在彈出的“新建系統(tǒng)變量”窗口中泪蔫,新建一個(gè)名為JAVA_HOME的環(huán)境變量,變量值為Java的安裝路徑喘批,我的為:D:\develop\jdk\撩荣。
b.編輯Path環(huán)境變量,在原變量值的最后面加上;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
c.新建一個(gè)名為“CLASSPATH”的環(huán)境變量饶深,變量值為:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

如圖所示:


d.然后打開命令行餐曹,輸入java -version,如果有版本號(hào)輸出敌厘,說明環(huán)境配置好了台猴,否則請按上述步驟重新操作一次。具體輸出如圖所示:

  • (4)SDK和安卓模擬器:

1.我們雙擊打開Android Studio俱两,進(jìn)入歡迎頁卿吐,如圖所示:


2.然后打開右下角的Configure右邊的倒三角按鈕,選擇Settings锋华,如圖所示:

3.然后一次選擇Appearance and Behavior --> System Settings --> Android SDK嗡官,進(jìn)入Android SDK頁面,我們可以看到SDK Platforms,這個(gè)就是前面安裝的時(shí)候默認(rèn)安裝的那個(gè)文件,是sdk的核心文件毯焕。我們看看Android API 28下面有一個(gè)Google APIs Intel x86 Atom System Image模擬器衍腥,這個(gè)是帶有包含Google Play service 等 Google 的應(yīng)用和服務(wù)的模擬器,一般情況我們使用Intel x86 Atom System Image模擬器(32位)纳猫,或者Intel x86 Atom_64 System Image模擬器(64位)就可以了婆咸。在實(shí)際開發(fā)中,為了兼容不同版本芜辕,你可以根據(jù)需要下載不同API對應(yīng)的模擬器尚骄。如圖所示。

【注意】關(guān)于Build Tools 版本的一些建議侵续,建議下載Android SDK Platform 不同版本 以及對應(yīng)的SDK Tools 版本倔丈。每一個(gè)文件的詳細(xì)信息說明截圖如下:

4.需要在Path環(huán)境變量中添加兩個(gè)值憨闰。分別是 Android SDK中tools目錄的路徑和platform-tools的路徑。(如果已經(jīng)配置需五,就不用再去配置了鹉动。)

D:\android-sdk\tools;
D:\android-sdk\platform-tools;
(三)安裝node和yarn

許多前端工具的安裝都依賴于node的包管理器npm。node安裝請查看我的另一篇博客宏邮,有專門的講解:nodejs泽示、npm和yarn安裝和使用和填坑詳解 http://www.reibang.com/p/9eba0e2c0697

(四)Python2.X(不支持Python3.X)
E:\develop\Python2.7.13\Scripts;
  • 查看python安裝版本:

    輸入python命令即可飒炎。

查看python安裝版本
(五)react native

react native中文網(wǎng) https://reactnative.cn/

  • 使用npm命令行安裝react native埋哟,如下:
    npm install -g react-native-cli

如圖所示:

下載react-native-cli
  • 查看本地react-native-cli版本號(hào),使用命令:
    react-native --version
    // 或者
     react-native -v

圖示如下厌丑,我當(dāng)前的react-native-cli版本號(hào)為2..0.1

查看本地react native版本號(hào)

這時(shí)候會(huì)看到react native n/a - not inside a React Native project directory定欧,意思是不在一個(gè)RN項(xiàng)目根路徑執(zhí)行這個(gè)命令渔呵,那么就不會(huì)顯示rn的版本號(hào)信息怒竿。我們接下來放到rn的項(xiàng)目根路徑,重新執(zhí)行該命令扩氢,就會(huì)看到rn的版本信息是0.60.0耕驰,如下圖所示:

image.png
  • 查看react native所有版本信息,使用命令:
    npm info react-native

圖示如下录豺,其中第一個(gè)就是當(dāng)前我們下載的這個(gè)版本:

查看react native所有版本信息
  • 升級react native版本朦肘,使用命令:
    npm install --save react-native@0.60.0

其中0.60.0是版本號(hào),可以使用命令 npm info react-native查看所有的rn的版本信息双饥,找一個(gè)你想要下載的版本即可媒抠。

(六)說明

1.安裝完 yarn 之后就可以用 yarn 代替 npm 了,例如用yarn代替npm install命令咏花,用yarn add 某第三方庫名代替npm install --save 某第三方庫名趴生。

例如:

以前是npm命令:npm install --save react-native@0.56.0
你可以使用yarn命令替代:yarn add react-native@0.56.0

2.加快react native啟動(dòng)的幾種方式:

主要還是給npm和yarn設(shè)置鏡像,詳細(xì)講解請看我的另一篇博客昏翰,有專門的講解:nodejs苍匆、npm和yarn安裝和使用和填坑詳解 http://www.reibang.com/p/9eba0e2c0697


二、運(yùn)行首個(gè)App

(一)使用命令行創(chuàng)建新項(xiàng)目

使用react-native init 項(xiàng)目名稱創(chuàng)建項(xiàng)目棚菊,如圖所示:

創(chuàng)建新項(xiàng)目

(二)手動(dòng)打開安卓模擬器(不開啟Android Studio也可以打開模擬器)

1.首先在電腦的C盤的C:\Users\Administrator\.android\avd這個(gè)目錄找到你創(chuàng)建的模擬器的名稱浸踩,去掉后綴名,復(fù)制一下统求。比如我的是:Pixel_API25_7.1.1_x86_1080x1920_xxhdpi_5.0inch.avd检碗,如圖所示:

2.創(chuàng)建一個(gè)使用腳本据块,新建一個(gè)文件,后綴名為.bat后裸,然后用記事本打開瑰钮,輸入以下內(nèi)容:,其中E:\develop\sdk\tools\emulator.exe是模擬器所在sdk的路徑微驶,換成你電腦里面對應(yīng)路徑即可浪谴。

E:\develop\sdk\tools\emulator.exe -netdelay none -netspeed full -avd Pixel_API25_7.1.1_x86_1080x1920_xxhdpi_5.0inch -writable-system

3.雙擊剛才創(chuàng)建的腳本,即可開啟模擬器了因苹。

雙擊命令:

雙擊命令

模擬器正式開始如圖:

模擬器正式開始

(三)編譯并運(yùn)行 React Native 應(yīng)用

在剛創(chuàng)建的rn項(xiàng)目根目錄苟耻,打開命令行,輸入react-native run-android命令:

這個(gè)時(shí)候會(huì)去檢查gradle環(huán)境扶檐,如果沒有指定gradle版本凶杖,會(huì)下載gradle到本地。比如這里下載的是gradle-5.4.1-all這個(gè)版本款筑。下載完成會(huì)自動(dòng)編譯項(xiàng)目智蝠,如下圖所示:

運(yùn)行項(xiàng)目

運(yùn)行成功如下圖所示:


三、出現(xiàn)的問題

(1) 運(yùn)行項(xiàng)目出現(xiàn) Unable to load script...

點(diǎn)擊RELOAD奈梳,重新嘗試杈湾。

(2)The development server returned response error code: 500

解決方式:
在剛創(chuàng)建的項(xiàng)目的根目錄運(yùn)行下列代碼:
首先執(zhí)行yarn remove babel-preset-react-native,然后再執(zhí)行yarn add babel-preset-react-native@2.1.0

(3)Cound not connect to development server.

無法連接到服務(wù)器攘须。大致翻譯如下:

連接不到開發(fā)的服務(wù)器漆撞。

請按照以下的步驟來修復(fù)此問題:

確保包服務(wù)器在運(yùn)行
確保你的設(shè)備或者模擬器連接著電腦,并且手機(jī)打開了USB調(diào)試模式于宙,然后在cmd中運(yùn)行adb devices來查看已經(jīng)連接好的設(shè)備列表
確保飛行模式是關(guān)閉的
如果是使用真機(jī)來開發(fā)浮驳,輸入 adb reverse tcp:8081 tcp:8081來檢查設(shè)備
輸入U(xiǎn)RL:例如:http://10.0.1.1:8081

解決:

  • 1.檢查硬件連接,以及使用adb devices來查看是否連接成功捞魁。
  • 2.可能是node版本與react native需要用到的版本沖突至会,升級node到最新版,再試試看谱俭。
  • 3.打開開發(fā)者選項(xiàng)奉件,關(guān)閉飛行模式。

(4)關(guān)于命令行提示gradle的一些錯(cuò)誤

建議:把項(xiàng)目里面的android目錄導(dǎo)入到Android Studio旺上,讓Android Studio工具幫你自動(dòng)構(gòu)建瓶蚂。

(5) RN默認(rèn)是用的gradle3.5構(gòu)建的,所以建議使用AS2.3.X版本(但是不能大于3.0.0版本)導(dǎo)入項(xiàng)目宣吱。我用的是AS3.1.3窃这,gradle構(gòu)建成功的,但是命令行執(zhí)行react-native run-android命令一直報(bào)各種錯(cuò),問了別人也找不到解決方案杭攻,可能是RN對高版本的AS工具以及高版本的gradle不兼容吧祟敛。

(6)如果模擬器上運(yùn)行項(xiàng)目出現(xiàn)"Unable to load script from assets 'index.android.bundle'.Make sure your bundle is packaged correctly or you are running a package server."這樣的錯(cuò)誤怎么解決?

解決方式:
1.進(jìn)入\android\app\src\main目錄兆解,新建assets文件夾馆铁。
2.進(jìn)入項(xiàng)目根目錄cmd運(yùn)行以下命令:

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

(7)如果第四步的問題還沒有解決,建議使用以下方式創(chuàng)建和安裝應(yīng)用:(這個(gè)又是一種構(gòu)建方式锅睛,和rn有點(diǎn)區(qū)別埠巨,可以玩一下,但不建議學(xué)這個(gè)现拒。)

npm install -g create-react-native-app   這是安裝`create-react-native-app`命令工具
create-react-native-app 項(xiàng)目名   例如:create-react-native-app demo1
進(jìn)入項(xiàng)目根目錄辣垒,輸入`npm start`命令運(yùn)行(也可以試試yarn start)

(8)Unable to resolve module 'AccessibilityInfo'

react native版本問題,建議下載react-native 0.55.4版本印蔬,以及react-native-cli 1.2.0 版本勋桶,具體操作如下:
打開cmd命令行,逐個(gè)輸入以下命令:

npm uninstall -g react-native-cli
npm install react-native@0.55.4
npm install -g react-native-cli@1.2.0

然后打開一個(gè)項(xiàng)目目錄侥猬,打開cmd命令行輸入以下命令創(chuàng)建工程:

react-native init --version="0.55.4" 項(xiàng)目名

(9)Invariant Violation:Applicaction 你的項(xiàng)目名稱 has not been registered.This is either due to a require() error during initialization or failure to call AppRegistry.registerCommponent.

錯(cuò)誤如圖所示:

這個(gè)問題一般是配置的問題例驹,解決方式如下,確保registerComponent(參數(shù)1)getMainComponentName()返回值這兩個(gè)保持一致就OK:

根路徑里面的index.js文件打開退唠,請看AppRegistry.registerComponent('rn_demo', () => App); 我這里括號(hào)內(nèi)參數(shù)1為rn_demo鹃锈,和項(xiàng)目根路徑名稱是一致的。

打開目錄/android/app/src/main/java/com/項(xiàng)目名/MainActivity.java铜邮,找到getMainComponentName()方法仪召,我這里返回的是rn_demo1寨蹋,事實(shí)上我項(xiàng)目根路徑名字叫做rn_demo松蒜。我只需要改成rn_demo就好了。

    @Override
    protected String getMainComponentName() {
        return "rn_demo1";
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末已旧,一起剝皮案震驚了整個(gè)濱河市秸苗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌运褪,老刑警劉巖惊楼,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異秸讹,居然都是意外死亡檀咙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門璃诀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弧可,“玉大人,你說我怎么就攤上這事劣欢∽厮校” “怎么了裁良?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長校套。 經(jīng)常有香客問我价脾,道長,這世上最難降的妖魔是什么笛匙? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任侨把,我火速辦了婚禮,結(jié)果婚禮上妹孙,老公的妹妹穿的比我還像新娘座硕。我一直安慰自己,他們只是感情好涕蜂,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布华匾。 她就那樣靜靜地躺著,像睡著了一般机隙。 火紅的嫁衣襯著肌膚如雪蜘拉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天有鹿,我揣著相機(jī)與錄音旭旭,去河邊找鬼。 笑死葱跋,一個(gè)胖子當(dāng)著我的面吹牛持寄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娱俺,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼稍味,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了荠卷?” 一聲冷哼從身側(cè)響起模庐,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎油宜,沒想到半個(gè)月后掂碱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慎冤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年疼燥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚁堤。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡醉者,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情湃交,我是刑警寧澤熟空,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站搞莺,受9級特大地震影響息罗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜才沧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一迈喉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧温圆,春花似錦挨摸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锅移,卻和暖如春熔掺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背非剃。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工置逻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人备绽。 一個(gè)月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓券坞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肺素。 傳聞我的和親對象是個(gè)殘疾皇子恨锚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容