react+react-native混合App開發--從拉取項目到報錯處理:No value has been specified for this provider

寫在前面的小結:

1、一般拉取的項目導入之後,都會出現很多問題,最首要且常見的問題是 gradle版本、build-tools版本、SDK版本 的問題
所以,在導入項目之後,首先要做的就是修改這些版本:修改項目版本和本地版本一致,或者下載項目中的版本

2、遇到問題可以去看看官方說明,不要一味的百度、看文章,React Native 中文網還是可以的,會指明一些需要注意的坑

下面是正文,但是不是所有內容都是必看的,4.1和4.2可以跳過

1、拉取項目

從gitlab中拉取項目

git clone http://xxx // clone後面是你的GitLab中項目鏈接

2、安裝依賴項

熟悉的人肯定知道,這一項必不可少。但是我就是因爲漏了這一項,直接進行了第3步,導致項目build時候報錯:/node_modules/react-native-unimodules/gradle.groovy is not exist

npm install

3、打開項目

打開Android studio,將react-native項目導入,注意選擇到項目下的android目錄
在這裏插入圖片描述

4、重場戲:版本處理

使用Android studio打開項目之後,會自動進行build,build成功之後就可以運行項目了。但是在build時,出現了一些問題:No value has been specified for this provider.
在這裏插入圖片描述
在這裏插入圖片描述
到這裏,看上去感覺很明顯不是gradle版本、SDK版本、build-tools版本的問題,但是實際上真的是


網上百度了很多,看到了好幾個解決方案,嘗試之後找到一個可行的(其實,我當時並不知道官方有說明,後來纔看到,浪費了很多時間和精力)

下面把我的整個探索寫出來,並給出標註,請自選查看

4.1 【失敗】嘗試一:clean project

在這裏插入圖片描述
但是build失敗了
在這裏插入圖片描述

我的Android SDK版本是30,導入項目的是28,但是這是向下兼容的,應該沒有問題

【來自問題解決之後的補充說明】
注意這句話,很重要,就是這個讓我忽略了版本問題。因爲項目是在我安裝Android studio前一週創建的,因此我的版本最新,如果向下兼容,也是沒有問題的,而且覺得就是一週之差,應該不會有什麼差別

4.2 【無效】嘗試二:修改gradle版本

AS在導入項目過程中會檢查項目中所需的gradle版本 sdk版本等本地是否有,沒有的話就會從官網下載,衆所周知要想從谷歌官網下載東西是十分困難的,所以需要修改成本地有的(當然,需要你先下載到本地)

1、修改:項目名\android\build.gradle

buildToolsVersion = "30" // 修改爲本地SDK的版本

在這裏插入圖片描述
2、修改:項目名\android\gradle\wrapper\gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip // gradle-x-x-x-all.zip版本修改爲本地有的

在這裏插入圖片描述
3、重啓Android studio

會自動去下載剛纔修改之後的版本,第一次下載失敗:Connection timed out: connect. If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle.,可能是網絡問題
在這裏插入圖片描述
重新下載,網絡可以了
在這裏插入圖片描述
報錯:Minimum supported Gradle version is 5.4.1. Current version is 5.2.1.Please fix the project's Gradle settings.
支持的最低梯度版本是5.4.1。當前版本是5.2.1。請修復項目的漸變設置
在這裏插入圖片描述
點擊Fix修復,網絡問題,下載不來,還是恢復使用5.6.3版本

4、恢復gradle-wrapper.properties中的修改,保留build.gradle中的修改

到此,修改內容僅保留了修改1:項目名\android\build.gradle

buildscript {
    ext {
		// buildToolsVersion = "28.0.3"
        buildToolsVersion = "30" // 修改爲本地SDK的版本
        minSdkVersion = 21
		// compileSdkVersion = 28
		// targetSdkVersion = 28
        compileSdkVersion = 30
        targetSdkVersion = 30
    }
}
4.3 【成功】嘗試三:安裝 Android SDK Build Tools 28.0.3

1、接上一步,重啓Android studio,遇到報錯:點擊install
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
2、重新build:安裝完成自動build

幾經波折,終於見到了一直想看到的結果:build success
在這裏插入圖片描述
3、啓動App

等了很久,過程有點焦灼,生怕有報錯,看到結果終於放心了
在這裏插入圖片描述
到此,導入外來項目的問題已經解決

5、回顧:定位問題

React Navtive中文網 看到以下內容
在這裏插入圖片描述
在這裏插入圖片描述
回顧整個處理問題的過程,最終正確觸及的地方也正是上面說的部分:Build-Tools 28.0.3 版本

一直一來,用的都是安裝Android studio時安裝的 Build-Tools 30 版本,直到後來下載了 28.0.3 版本,build 過程才執行成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章