當年把所有 Android開發工具都佈置完畢時的第一件事是什麼?對,自己創建各項目。
在接下來的日子中,你會經常要去導入別人的源碼來對照着學習。
但是Android Studio聽說很智能,但是對於初學者來說,Gradle的一大堆問題,夠你一調就調好幾天了。(親身經歷過三四天都在調,就爲了把尚硅谷開源的項目源碼運行成功。。。。。。)
所以,
初學者們,怎麼Android Studio 打開他人的項目?這個技能快點掌握吧,別還沒入門就被AS勸退了。
說在前面:
如果你正在跟着某個機構的系統教學視頻學習,強烈建議你的所有開發工具的版本都和教學視頻裏的版本一樣!!!之後你打開他提供的項目源碼,基本都是不會出現問題的,就算出現了,也是很好解決的。
學習一門語言,千萬不要浪費時間在開發工具的問題上!得不償失啊!等你掌握這門語言了,對開發工具使用得很熟練了,到那時,你再去將你的開發工具更新到最新版本,再去用新特性。切記,切記,切記啊!
導入別人的 Android Studio 項目往往是會出錯的,一般出現以下幾種情況:
1、run 灰色;
2、配置 app 顯示紅 x, 主要是 no moudle;
3. 其他,反正一大堆錯等着你百度。
我發現好多百度出來的也是坑,根本解決不了我們的問題。所以今天記錄以下自己解決導入別人 android Studio 的過程。
前提條件:問題的原因就是每個人的AS、Gradle的版本不同,以及項目配置文件的信息不一樣。所以解決辦法就是刪除這些配置文件,再導入自己電腦的AS,然後讓他自己生成這些東西。
我電腦有兩個版本的Android Studio,一個3.2.1,另一個1.5.0 (就是因爲想打開網上別人的項目才下載這個老版本的) 。結果就算AS版本一樣,還是總會出現gradle一大堆錯誤,按谷歌到的方法試了都無果,只有轉載的這個方法有用。
較快的一般解決方法:就是自己新建一個 project 項目,然後 run,如果能 run 成功,這表明接下來出的錯可以排除並不是你安裝 android Studio 配置沒配好,比如 sdk 沒配好的原因。能 run 成功的項目後就直接把你要導進的項目裏的整個 app 文件複製然後跟你的項目 app 進行替換。一般是不會出錯的,沒有發現紅 x,那就 run 一下。如果 run 成功,app 能顯示出來,那就恭喜你了。如果是 run 成功,但提示 app 程序終止等的話,那就去看控制檯,這時候可以通過控制檯迅速定位到出錯的地方。
如果是簡單的就自己解決,不會的就直接把問題百度吧。
但是當你想導入的是大型項目時呢?
較好的一般解決方法:直接 run 別人的項目,不過在 run 之前的做些準備工作,不要直接一有項目就直接往 android studio 導項目,這時候往往都是給你紅 xxx 的以及一些報錯信息,當然如果你的版本剛好跟要導的項目是同一版本的話,也許會有驚喜哦。不過我就沒這運氣啦,^_^。
首先:去到要導入項目的目錄下把 .idea,*.iml,local.properties 刪除(* 表示所有).
然後進入 app 文件夾把 build文件夾,*.iml 刪除。
還要打開 app 文件夾中的build.gradle文件,(在此步驟之前請打開以往你自己在AS上能 run 成功的項目的gradle文件來參照)
① 修改 compileSdkVersion , buildToolsVersion;(我在Android Studio 3.2.1中一般用 28, 28.0.3)
② 修改 defaultConfig{} 中的 minSdkVersion 和 targetSdkVersion(我在Android Studio 3.2.1中一般用 15, 28)
③ 把 dependencies{} 中implementation 修改成對應上面 compileSdkVersion, buildToolsVersion 的版本號;
如圖:
Android Studio3.0 後 build.gradle 裏的 dependencies 裏 compile 要改爲 implementation
接着打開以往在自己的AS上 run 成功的項目,在其主文件夾下找到 build.gradle 文件:
把 classpath: 這整句複製,去要導入的項目中打開 build.gradle進行替換。
(我在Android Studio 3.2.1中一般用對應版本號 classpath 'com.android.tools.build:gradle:3.2.1' )
最後再打開主文件夾的gradle文件目錄(即 gradle\wrapper\gradle-wrapper.properties ),
複製 distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip (我在Android Studio 3.2.1 中一般用 gradle4.6),
去到要導入的項目進行替換。
好了,最後可以打開 android studio 通過 open an exisiting android studio project 選項打開要導入的項目。
一般這樣都能 run 成功了並且 app 運行無異常,
隨着學習的深入,你會發現還有好多這樣解決不了的問題。(但是大都不是代碼問題,而是版本不適配的問題。所以AS和Gradle,有利也有弊吧。)
學會看報紅的錯誤信息,根據提示去查解決方案。
(哪裏報錯,就用 Shift+ctrl+F 輸入這個代碼名查找到對應位置)
如果導入還是報錯,再根據具體錯誤進行修改或者百度。
(注:建議去GitHub下載一些 Star 多的熱門開源安卓項目看看,例如 OSChina 的安卓源碼,你會發現它門幾乎都是先刪除掉下面說的這些再發上去開源的)
引用一句名言:“不會,我可以學;落後,我可以追趕;跌倒,我可以站起來;我一定行。”
(本文受 灰太狼_cxh的文章:Android Studio 踩的坑之導入別人的 Android Studio 項目 的啓發,之後結合自己情況修改。)