Flutter實(shí)戰(zhàn) 搭建Flutter開(kāi)發(fā)環(huán)境

2021-03-06 15:07 更新

工欲善其事必先利其器,本節(jié)首先會(huì)分別介紹一下在 Windows 和 macOS 下 Flutter SDK 的安裝,然后再介紹一下配 IDE 和模擬器的使用。

#1.3.1 安裝Flutter

由于 Flutter 會(huì)同時(shí)構(gòu)建 Android 和 IOS 兩個(gè)平臺(tái)的發(fā)布包,所以 Flutter 同時(shí)依賴(lài) Android SDK 和 iOS SDK,在安裝 Flutter 時(shí)也需要安裝相應(yīng)平臺(tái)的構(gòu)建工具和 SDK 。下面我們分別介紹一下 Windows 和 macOS 下的環(huán)境搭建。

注意:本節(jié)介紹的安裝方式隨著 Flutter 的升級(jí)可能會(huì)發(fā)生變化,如果下面介紹的內(nèi)容在您安裝 Flutter 時(shí)已經(jīng)失效,請(qǐng)?jiān)L問(wèn) Flutter 官網(wǎng),按照官網(wǎng)最新的安裝教程安裝。

#使用鏡像

由于在國(guó)內(nèi)訪問(wèn) Flutter 有時(shí)可能會(huì)受到限制,F(xiàn)lutter 官方為中國(guó)開(kāi)發(fā)者搭建了臨時(shí)鏡像,大家可以將如下環(huán)境變量加入到用戶(hù)環(huán)境變量中:

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

注意: 此鏡像為臨時(shí)鏡像,并不能保證一直可用,讀者可以參考https://flutter.io/community/china 以獲得有關(guān)鏡像服務(wù)器的最新動(dòng)態(tài)。

#在Windows上搭建Flutter開(kāi)發(fā)環(huán)境

#系統(tǒng)要求

要安裝并運(yùn)行 Flutter,您的開(kāi)發(fā)環(huán)境必須滿足以下最低要求:

  • 操作系統(tǒng): Windows 7 或更高版本 (64-bit)

  • 磁盤(pán)空間: 400 MB (不包括Android Studio的磁盤(pán)空間).

  • 工具: Flutter 依賴(lài)下面這些命令行工具.

如果已安裝Git for Windows,請(qǐng)確??梢栽诿钐崾痉騊owerShell中運(yùn)行 git 命令

#獲取Flutter SDK

  1. 去flutter官網(wǎng)下載其最新可用的安裝包,下載地址:flutter.dev/docs/development/tools/sdk/releases ,打開(kāi)后如圖1-2所示:

圖1-2

注意,F(xiàn)lutter的渠道版本會(huì)不停變動(dòng),請(qǐng)以Flutter官網(wǎng)為準(zhǔn)。另外,在中國(guó)大陸地區(qū),要想正常獲取安裝包列表或下載安裝包,可能需要翻墻,讀者也可以去Flutter github項(xiàng)目下去下載安裝包,地址:https://github.com/flutter/flutter/releases 。

  1. 將安裝包zip解壓到你想安裝Flutter SDK的路徑(如:C:\src\flutter;注意,不要將flutter安裝到需要一些高權(quán)限的路徑如C:\Program Files\)。

  1. 在Flutter安裝目錄的flutter文件下找到flutter_console.bat,雙擊運(yùn)行并啟動(dòng)flutter命令行,接下來(lái),你就可以在Flutter命令行運(yùn)行flutter命令了。

#更新環(huán)境變量

如果你想在 Windows 系統(tǒng)自帶命令行運(yùn)行flutter命令,需要添加以下環(huán)境變量到用戶(hù)PATH:

  • 轉(zhuǎn)到 “控制面板>用戶(hù)帳戶(hù)>用戶(hù)帳戶(hù)>更改我的環(huán)境變量”
  • 在“用戶(hù)變量”下檢查是否有名為“Path”的條目:
    • 如果該條目存在, 追加 flutter\bin的全路徑,使用 ; 作為分隔符.
    • 如果該條目不存在,創(chuàng)建一個(gè)新用戶(hù)變量 Path ,然后將 flutter\bin 的全路徑作為它的值.

重啟Windows以應(yīng)用此更改.

#運(yùn)行 flutter doctor命令

在Flutter命令行運(yùn)行如下命令來(lái)查看是否還需要安裝其它依賴(lài),如果需要,安裝它們:

flutter doctor

該命令檢查你的環(huán)境并在命令行窗口中顯示報(bào)告。Dart SDK已經(jīng)在打包在Flutter SDK里了,沒(méi)有必要單獨(dú)安裝Dart。 仔細(xì)檢查命令行輸出以獲取可能需要安裝的其他軟件或進(jìn)一步需要執(zhí)行的任務(wù)。

例如:

[-] Android toolchain - develop for Android devices
    ? Android SDK at D:\Android\sdk
    ? Android SDK is missing command line tools; download from https://goo.gl/XxQghQ
    ? Try re-installing or updating your Android SDK,
      visit https://flutter.io/setup/#android-setup for detailed instructions.

第一次運(yùn)行flutter命令(如flutter doctor)時(shí),它會(huì)下載它自己的依賴(lài)項(xiàng)并自行編譯。以后再運(yùn)行就會(huì)快得多。缺失的依賴(lài)需要安裝一下,安裝完成后再運(yùn)行flutter doctor命令來(lái)驗(yàn)證是否安裝成功。

#Android設(shè)置

Flutter依賴(lài)于Android Studio的全量安裝。Android Studio不僅可以管理Android 平臺(tái)依賴(lài)、SDK版本等,而且它也是Flutter開(kāi)發(fā)推薦的IDE之一(當(dāng)然,你也可以使用其它編輯器或IDE,我們將會(huì)在后面討論)。

#安裝Android Studio

  1. 下載并安裝 Android Studio,下載地址:https://developer.android.com/studio/index.html
  2. 啟動(dòng)Android Studio,然后執(zhí)行“Android Studio安裝向?qū)А薄_@將安裝最新的Android SDK、Android SDK平臺(tái)工具和Android SDK構(gòu)建工具,這些是用Flutter進(jìn)行Android開(kāi)發(fā)所需要的。

#安裝遇到問(wèn)題?

如果在安裝過(guò)程中遇到問(wèn)題,可以先去flutter官網(wǎng)查看一下安裝方式是否發(fā)生變化,或者在網(wǎng)上搜索一下解決方案。

#在macOS上搭建Flutter開(kāi)發(fā)環(huán)境

在masOS下可以同時(shí)進(jìn)行Android和iOS設(shè)備的測(cè)試。

#系統(tǒng)要求

要安裝并運(yùn)行Flutter,您的開(kāi)發(fā)環(huán)境必須滿足以下最低要求:

  • 操作系統(tǒng): macOS (64-bit)
  • 磁盤(pán)空間: 700 MB (不包括Xcode或Android Studio的磁盤(pán)空間).
  • 工具: Flutter 依賴(lài)下面這些命令行工具.
    • bash、mkdir、rm、git、curl、unzip、which

#獲取Flutter SDK

  1. 去flutter官網(wǎng)下載其最新可用的安裝包,官網(wǎng)地址:flutter.io/sdk-archive/#macoss

注意,F(xiàn)lutter的渠道版本會(huì)不停變動(dòng),請(qǐng)以Flutter官網(wǎng)為準(zhǔn)。另外,在中國(guó)大陸地區(qū),要想正常獲取安裝包列表或下載安裝包,可能需要翻墻,讀者也可以去Flutter github項(xiàng)目下去下載安裝包,地址:github.com/flutter/flutter/releases

  1. 解壓安裝包到你想安裝的目錄,如:

   cd ~/development
   unzip ~/Downloads/flutter_macos_v0.5.1-beta.zip

  1. 添加flutter相關(guān)工具到path中:

   export PATH=`pwd`/flutter/bin:$PATH

此代碼只能暫時(shí)針對(duì)當(dāng)前命令行窗口設(shè)置PATH環(huán)境變量,要想永久將Flutter添加到PATH中請(qǐng)參考下面更新環(huán)境變量 部分。

#運(yùn)行 flutter doctor命令

這一步和Windows下步驟一致,不再贅述。

#更新環(huán)境變量

將Flutter添加到PATH中,可以在任何終端會(huì)話中運(yùn)行flutter命令。

對(duì)于所有終端會(huì)話永久修改此變量的步驟是和特定計(jì)算機(jī)系統(tǒng)相關(guān)的。通常,您會(huì)在打開(kāi)新窗口時(shí)將設(shè)置環(huán)境變量的命令添加到執(zhí)行的文件中。例如

  1. 確定您Flutter SDK的目錄記為“FLUTTER_INSTALL_PATH”,您將在步驟3中用到。

  1. 打開(kāi)(或創(chuàng)建) $HOME/.bash_profile。文件路徑和文件名可能在你的電腦上不同.

  1. 添加以下路徑:

   export PATH=[FLUTTER_INSTALL_PATH]/flutter/bin:$PATH

例如筆者Flutter 安裝目錄是“~/code/flutter_dir”,那么代碼為:

   export PATH=~/code/flutter_dir/flutter/bin:$PATH

  1. 運(yùn)行 source $HOME/.bash_profile 刷新當(dāng)前終端窗口。

注意: 如果你使用終端是zsh,終端啟動(dòng)時(shí) ~/.bash_profile 將不會(huì)被加載,解決辦法就是修改 ~/.zshrc ,在其中添加:source ~/.bash_profile

  1. 驗(yàn)證“flutter/bin”是否已在PATH中:

   echo $PATH

#安裝 Xcode

要為iOS開(kāi)發(fā)Flutter應(yīng)用程序,您需要Xcode 9.0或更高版本:

  1. 安裝Xcode 9.0或更新版本(通過(guò)鏈接下載 (opens new window)蘋(píng)果應(yīng)用商店 (opens new window)).
  2. 配置Xcode命令行工具以使用新安裝的Xcode版本 sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer 對(duì)于大多數(shù)情況,當(dāng)您想要使用最新版本的Xcode時(shí),這是正確的路徑。如果您需要使用不同的版本,請(qǐng)指定相應(yīng)路徑。
  3. 確保Xcode許可協(xié)議是通過(guò)打開(kāi)一次Xcode或通過(guò)命令sudo xcodebuild -license同意過(guò)了.

使用Xcode,您可以在iOS設(shè)備或模擬器上運(yùn)行Flutter應(yīng)用程序。

#安裝Android Studio

和Window一樣,要在Android設(shè)備上構(gòu)建并運(yùn)行Flutter程序都需要先安裝Android Studio,讀者可以先自行下載并安裝Android Studio,在此不再贅述。

#升級(jí) Flutter

#Flutter SDK分支

Flutter SDK有多個(gè)分支,如beta、dev、master、stable,其中stable分支為穩(wěn)定分支(日后有新的穩(wěn)定版本發(fā)布后可能也會(huì)有新的穩(wěn)定分支,如1.0.0),dev和master為開(kāi)發(fā)分支,安裝flutter后,你可以運(yùn)行flutter channel查看所有分支,如筆者本地運(yùn)行后,結(jié)果如下:

Flutter channels:
  beta
  dev
* master

帶"*"號(hào)的分支即你本地的Flutter SDK 跟蹤的分支,要切換分支,可以使用flutter channel betaflutter channel master,F(xiàn)lutter官方建議跟蹤穩(wěn)定分支,但你也可以跟蹤master分支,這樣可以查看最新的變化,但這樣穩(wěn)定性要低的多。

#升級(jí)Flutter SDK和依賴(lài)包

要升級(jí)flutter sdk,只需一句命令:

flutter upgrade

該命令會(huì)同時(shí)更新Flutter SDK和你的flutter項(xiàng)目依賴(lài)包。如果你只想更新項(xiàng)目依賴(lài)包(不包括Flutter SDK),可以使用如下命令:

  • flutter packages get獲取項(xiàng)目所有的依賴(lài)包。
  • flutter packages upgrade 獲取項(xiàng)目所有依賴(lài)包的最新版本。

#

#1.3.2 IDE配置與使用

理論上可以使用任何文本編輯器與命令行工具來(lái)構(gòu)建Flutter應(yīng)用程序。 不過(guò),F(xiàn)lutter官方建議使用Android Studio和VS Code之一以獲得更好的開(kāi)發(fā)體驗(yàn)。Flutter官方提供了這兩款編輯器插件,通過(guò)IDE和插件可獲得代碼補(bǔ)全、語(yǔ)法高亮、widget編輯輔助、運(yùn)行和調(diào)試支持等功能,可以幫助我們極大的提高開(kāi)發(fā)效率。下面我們分別介紹一下Android Studio和VS Code的配置及使用(Android Studio和VS Code讀者可以在其官網(wǎng)獲得最新的安裝,由于安裝比較簡(jiǎn)單,故不再贅述)。

#Android Studio 配置與使用

由于Android Studio是基于IntelliJ IDEA開(kāi)發(fā)的,所以讀者也可以使用IntelliJ IDEA。

#安裝Flutter和Dart插件

需要安裝兩個(gè)插件:

  • Flutter插件: 支持Flutter開(kāi)發(fā)工作流 (運(yùn)行、調(diào)試、熱重載等)。
  • Dart插件: 提供代碼分析 (輸入代碼時(shí)進(jìn)行驗(yàn)證、代碼補(bǔ)全等)。

安裝步驟:

  1. 啟動(dòng)Android Studio。
  2. 打開(kāi)插件首選項(xiàng) (macOS:Preferences>Plugins, Windows:File>Settings>Plugins)。
  3. 選擇 Browse repositories…,選擇 flutter 插件并點(diǎn)擊 install
  4. 重啟Android Studio后插件生效。

接下來(lái),讓我們用Android Studio創(chuàng)建一個(gè)Flutter項(xiàng)目,然后運(yùn)行它,并體驗(yàn)“熱重載”。

#創(chuàng)建Flutter應(yīng)用

  1. 選擇 File>New Flutter Project 。
  2. 選擇 Flutter application 作為 project 類(lèi)型, 然后點(diǎn)擊 Next。
  3. 輸入項(xiàng)目名稱(chēng) (如 myapp),然后點(diǎn)擊 Next。
  4. 點(diǎn)擊 Finish
  5. 等待Android Studio安裝SDK并創(chuàng)建項(xiàng)目。

上述命令創(chuàng)建一個(gè)Flutter項(xiàng)目,項(xiàng)目名為myapp,其中包含一個(gè)使用Material 組件 (opens new window)的簡(jiǎn)單演示應(yīng)用程序。

在項(xiàng)目目錄中,您應(yīng)用程序的代碼位于 lib/main.dart。

#運(yùn)行應(yīng)用程序

  1. 定位到Android Studio工具欄,如圖1-3所示:

圖1-3

  1. target selector 中, 選擇一個(gè)運(yùn)行該應(yīng)用的Android設(shè)備。如果沒(méi)有列出可用,請(qǐng)選擇 Tools>Android>AVD Manager 并在那里創(chuàng)建一個(gè)。

  1. 在工具欄中點(diǎn)擊 Run圖標(biāo)。

  1. 如果一切正常, 您應(yīng)該在您的設(shè)備或模擬器上會(huì)看到啟動(dòng)的應(yīng)用程序:

圖1-4

#體驗(yàn)熱重載

Flutter 可以通過(guò) 熱重載(hot reload) 實(shí)現(xiàn)快速的開(kāi)發(fā)周期,熱重載就是無(wú)需重啟應(yīng)用程序就能實(shí)時(shí)加載修改后的代碼,并且不會(huì)丟失狀態(tài)。簡(jiǎn)單的對(duì)代碼進(jìn)行更改,然后告訴IDE或命令行工具你需要重新加載(點(diǎn)擊reload按鈕),你就會(huì)在你的設(shè)備或模擬器上看到更改。

  1. 打開(kāi)lib/main.dart文件

  1. 將字符串 'You have pushed the button this many times:' 更改為 'You have clicked the button this many times:'

  1. 不要按“停止”按鈕; 讓您的應(yīng)用繼續(xù)運(yùn)行.

  1. 要查更改,請(qǐng)調(diào)用 Save (cmd-s / ctrl-s),或者點(diǎn)擊 熱重載按鈕 (帶有閃電??圖標(biāo)的按鈕)。

你會(huì)立即在運(yùn)行的應(yīng)用程序中看到更新的字符串。

#VS Code的配置與使用

VS Code是一個(gè)輕量級(jí)編輯器,支持Flutter運(yùn)行和調(diào)試。

#安裝flutter插件

  1. 啟動(dòng) VS Code。
  2. 調(diào)用 View>Command Palette…
  3. 輸入 ‘install’, 然后選擇 Extensions: Install Extension action。
  4. 在搜索框輸入 flutter ,在搜索結(jié)果列表中選擇 ‘Flutter’, 然后點(diǎn)擊 Install
  5. 選擇 ‘OK’ 重新啟動(dòng) VS Code。
  6. 驗(yàn)證配置
    • 調(diào)用 View>Command Palette…
    • 輸入 ‘doctor’, 然后選擇 ‘Flutter: Run Flutter Doctor’ action。
    • 查看“OUTPUT”窗口中的輸出是否有問(wèn)題

#創(chuàng)建Flutter應(yīng)用

  1. 啟動(dòng) VS Code
  2. 調(diào)用 View>Command Palette…
  3. 輸入 ‘flutter’, 然后選擇 ‘Flutter: New Project’ action
  4. 輸入 Project 名稱(chēng) (如myapp), 然后按回車(chē)鍵
  5. 指定放置項(xiàng)目的位置,然后按藍(lán)色的確定按鈕
  6. 等待項(xiàng)目創(chuàng)建繼續(xù),并顯示main.dart文件

#體驗(yàn)熱重載

  1. 打開(kāi)lib/main.dart文件。
  2. 將字符串 'You have pushed the button this many times:' 更改為 'You have clicked the button this many times:'
  3. 不要按“停止”按鈕; 讓您的應(yīng)用繼續(xù)運(yùn)行。
  4. 要查看您的更改,請(qǐng)調(diào)用 Save (cmd-s / ctrl-s), 或者點(diǎn)擊 熱重載按鈕 (綠色圓形箭頭按鈕)。

你會(huì)立即在運(yùn)行的應(yīng)用程序中看到更新的字符串。

#1.3.3 連接設(shè)備運(yùn)行Flutter應(yīng)用

Window下只支持為Android設(shè)備構(gòu)建并運(yùn)行Flutter應(yīng)用,而macOS同時(shí)支持iOS和Android設(shè)備。下面分別介紹如何連接Android和iOS設(shè)備來(lái)運(yùn)行flutter應(yīng)用。

#連接Android模擬器

要準(zhǔn)備在Android模擬器上運(yùn)行并測(cè)試Flutter應(yīng)用,請(qǐng)按照以下步驟操作:

  1. 啟動(dòng) Android Studio>Tools>Android>AVD Manager 并選擇 Create Virtual Device.

  1. 選擇一個(gè)設(shè)備并選擇 Next。

  1. 為要模擬的Android版本選擇一個(gè)或多個(gè)系統(tǒng)印象,然后選擇 Next. 建議使用 x86x86_64 image .

  1. 在 “Emulated Performance”下, 選擇 Hardware - GLES 2.0 以啟用 硬件加速 (opens new window).

  1. 驗(yàn)證AVD配置是否正確,然后選擇 Finish。

有關(guān)上述步驟的詳細(xì)信息,請(qǐng)參閱 Managing AVDs (opens new window).

  1. 在“Android Virtual Device Manager”中,點(diǎn)擊工具欄的 Run。模擬器啟動(dòng)并顯示所選操作系統(tǒng)版本或設(shè)備的啟動(dòng)畫(huà)面。

  1. 運(yùn)行 flutter run 啟動(dòng)您的設(shè)備。 連接的設(shè)備名是 Android SDK built for <platform>,其中 platform 是芯片系列,如 x86。

#連接Android真機(jī)設(shè)備

要準(zhǔn)備在Android設(shè)備上運(yùn)行并測(cè)試Flutter應(yīng)用,需要Android 4.1(API level 16)或更高版本的Android設(shè)備.

  1. 在Android設(shè)備上啟用 開(kāi)發(fā)人員選項(xiàng)USB調(diào)試 。詳細(xì)說(shuō)明可在Android文檔 (opens new window)中找到。
  2. 使用USB將手機(jī)插入電腦。如果設(shè)備出現(xiàn)調(diào)試授權(quán)提示,請(qǐng)授權(quán)你的電腦可以訪問(wèn)該設(shè)備。
  3. 在命令行運(yùn)行 flutter devices 命令以驗(yàn)證Flutter識(shí)別您連接的Android設(shè)備。
  4. 運(yùn)行啟動(dòng)你應(yīng)用程序 flutter run。

默認(rèn)情況下,F(xiàn)lutter使用的Android SDK版本是基于你的 adb 工具版本。 如果想讓Flutter使用不同版本的Android SDK,則必須將該 ANDROID_HOME 環(huán)境變量設(shè)置為相應(yīng)的SDK安裝目錄。

#連接iOS模擬器

要準(zhǔn)備在iOS模擬器上運(yùn)行并測(cè)試Flutter應(yīng)用,請(qǐng)按以下步驟操作:

  1. 在你的MAC上,通過(guò) Spotlight 或以下命令找到模擬器:

   open -a Simulator

  1. 通過(guò)檢查模擬器 Hardware > Device 菜單中的設(shè)置,確保模擬器正在使用64位設(shè)備(iPhone 5s或更高版本)。

  1. 根據(jù)你電腦屏幕大小,模擬高清屏iOS設(shè)備可能會(huì)溢出屏幕。可以在模擬器的 Window> Scale 菜單下設(shè)置設(shè)備比例。

  1. 運(yùn)行 flutter run啟動(dòng)flutter應(yīng)用程序。

#連接iOS真機(jī)設(shè)備

要將Flutter應(yīng)用安裝到iOS真機(jī)設(shè)備,需要一些額外的工具和一個(gè)Apple帳戶(hù),還需要在Xcode中進(jìn)行一些設(shè)置。

  1. 安裝 homebrew (opens new window) (如果已經(jīng)安裝了brew,跳過(guò)此步驟)。

  1. 打開(kāi)終端并運(yùn)行如下這些命令:

   brew update
   brew install --HEAD libimobiledevice
   brew install ideviceinstaller ios-deploy cocoapods
   pod setup

如果這些命令中的任何一個(gè)失敗并出現(xiàn)錯(cuò)誤,請(qǐng)運(yùn)行brew doctor并按照說(shuō)明解決問(wèn)題.

  1. 遵循Xcode簽名流程來(lái)配置您的項(xiàng)目:

  • 在你Flutter項(xiàng)目目錄中通過(guò) open ios/Runner.xcworkspace 打開(kāi)默認(rèn)的Xcode workspace.

  • 在Xcode中,選擇導(dǎo)航面板左側(cè)中的Runner項(xiàng)目。

  • Runner target設(shè)置頁(yè)面中,確保在 General > Signing > Team 下選擇了你的開(kāi)發(fā)團(tuán)隊(duì)。當(dāng)你選擇一個(gè)團(tuán)隊(duì)時(shí),Xcode會(huì)創(chuàng)建并下載開(kāi)發(fā)證書(shū),向你的設(shè)備注冊(cè)你的帳戶(hù),并創(chuàng)建和下載配置文件(如果需要)。

  • 要開(kāi)始您的第一個(gè)iOS開(kāi)發(fā)項(xiàng)目,您可能需要使用您的Apple ID登錄Xcode,如圖1-5:

圖1-5

任何Apple ID都支持開(kāi)發(fā)和測(cè)試,但若想將應(yīng)用分發(fā)到App Store,就必須注冊(cè)Apple開(kāi)發(fā)者計(jì)劃,有關(guān)詳情讀者可以自行了解。

  1. 當(dāng)您第一次attach真機(jī)設(shè)備進(jìn)行iOS開(kāi)發(fā)時(shí),需要同時(shí)信任你的Mac和該設(shè)備上的開(kāi)發(fā)證書(shū)。首次將iOS設(shè)備連接到Mac時(shí),請(qǐng)?jiān)趯?duì)話框中選擇 Trust。

添加信任

然后,轉(zhuǎn)到iOS設(shè)備上的設(shè)置菜單,選擇 常規(guī)>設(shè)備管理 并信任您的證書(shū)。

  1. 如果Xcode中的自動(dòng)簽名失敗,請(qǐng)驗(yàn)證項(xiàng)目的 General > Identity > Bundle Identifier 值是否唯一,如圖1-7所示:

驗(yàn)證bundle id是否唯一

  1. 運(yùn)行 flutter run啟動(dòng)flutter應(yīng)用程序。

#1.3.4 常見(jiàn)配置問(wèn)題

#Android Studio問(wèn)題

#缺少依賴(lài)庫(kù)問(wèn)題

上手安卓最常遇見(jiàn)的問(wèn)題之一,錯(cuò)誤如圖1-8所示,此時(shí)點(diǎn)擊超鏈接即可自動(dòng)跳轉(zhuǎn)到安裝頁(yè)面

![圖1-8](data:image/png;base64,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)

安裝之后重新運(yùn)行即可,如圖1-9:

install_request_components.png

#連接不上Android Repository

這也是最常見(jiàn)的問(wèn)題之一,當(dāng)你發(fā)現(xiàn)自己無(wú)法下載部分依賴(lài)的時(shí)候,請(qǐng)優(yōu)先考慮這種情況。進(jìn)入 File -> Settings -> Appearance & Behavior -> System Settings -> Android SDK -> SDK Update Sites 列表,可以看到此時(shí)的 Android Repository 無(wú)法連接,如圖1-10所示:

下載依賴(lài)失敗

這是由于要去Google下載Android SDK,但在國(guó)內(nèi)目前無(wú)法訪問(wèn)Google所致,因此,我們可以配置代理或使用vpn。

#安卓包配置問(wèn)題

一般格式為

Could not HEAD **
Could not Get **

如:Android Studio Could not GET gradle-3.2.0.pom

這一類(lèi)問(wèn)題是由于無(wú)法連接到 Maven 庫(kù)造成的,解決方法如下:

  1. 進(jìn)入當(dāng)前所在項(xiàng)目名/android

  1. 打開(kāi) build.gradle

  1. 找到下面這一部分,并加上 maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }

   allprojects {
       repositories {
         google()
         jcenter()
         maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } //添加這一句
    }
   }

  1. 進(jìn)入 File/ Settings/ Build, Execution, Deployment/ BuildTools/ Gradle/ Android Studio 中,勾選上 Enable embedded Maven repository ,重啟 Android Studio 即可解決。

注意:存在這樣的一種情況,當(dāng)你根據(jù)上述步驟設(shè)置了之后,依舊無(wú)法解決這個(gè)問(wèn)題,并有類(lèi)似于 Could not HEAD maven.aliyun.com 的報(bào)錯(cuò)信息,請(qǐng)檢查 C:\Users\{user_name}\.gradle\gradle.properties 是否有設(shè)置代理。刪除后問(wèn)題即可解決。

#Hot Reload 熱重載失效問(wèn)題

在給 Terminal 之類(lèi)的終端模擬器設(shè)置代理之后,會(huì)導(dǎo)致“Hot Reload”重載失效,此時(shí)調(diào)用 Save (cmd-s / ctrl-s)將不會(huì)進(jìn)行熱重載,熱重載按鈕 (帶有閃電??圖標(biāo)的按鈕)也不會(huì)顯示,將代理移除即可解決。

另外,有些情況下熱重載是不生效的,比如修改了main函數(shù)、修改了全局靜態(tài)方法等,讀者可以認(rèn)為“Hot Reload”只會(huì)重新構(gòu)建整個(gè)widget樹(shù),如果變動(dòng)不在構(gòu)建widget樹(shù)的過(guò)程中,“Hot Reload”就不會(huì)起作用。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)