Android-Android studio 匯入開源項目以及常見的錯誤

來源:互聯網
上載者:User

標籤:

如何用 Android Studio 匯入開源項目以及常見錯誤的解決辦法本篇以Github上最熱門的MaterialDesign庫,MaterialDesignLibrary來介紹怎樣使用Android Sudio匯入開源項目的,如果你和我一樣剛剛從Eclipse轉到AS,那本篇文章非常適合你。如果不引入任何第三方庫,不做自動化分渠道打包等操作,那可以在完全不瞭解Gradle的情況下進行Android項目的開發。但如果要想匯入Github上的熱門項目,必須首先熟悉Gradle。1. GradleGradle是以Groovy為基礎,面向java應用,基於DSL文法的自動化構建工具。是google引入,替換ant和maven的新工具,其依賴相容maven和ivy。簡單來說,Gradle就是Andriod Studio引入的一種自動構建工程的工具,很好的解決了Android項目的構建。大概能解決以下開發過程中的痛點:不用把第三方庫下載下來。以前用Eclipse必須得把第三方庫下載下來,然後在自己的項目中引入那個第三方library才行。但使用Gradle,幾行代碼就搞定第三方庫的依賴,降低了耦合性。不用手動修改N次代碼,把代碼打N個包發到N個市場。以前可能需要針對不同的渠道發不同的APK檔案包,現在只需要在gradle中的幾行代碼就能一次產生多個渠道包。具體可參考此文章:如何通過Gradle實現一套代碼開發不同特性的APK。如果你用AS建立一個項目,那此項目的預設項目結構,圖中開啟的檔案是TestMe/build.gradle,已經給出了每句話的含義。gradle圖中建立項目名為TestMe,使用了Project的目錄結構。此目錄下可見以下幾個gradle檔案,分別是:TestMe/build.gradle,全域gradle,在這個檔案裡的設定會在整個項目裡通用。TestMe/app/build.gradle,模組的gradle,僅在app模組通用。TestMe/settings.gradle,用於指定哪個目錄是模組model。裡面的內容預設是include ‘:app‘,表示app這個檔案夾是一個模組。而TestMe/app/build.gradle檔案內容,具體解釋參見圖中注釋。gradle2. 匯入MaterialDesignLibrary項目我們的目標是把MaterialDesignLibrary項目在AS裡面成功運行,並在手機上運行成功。2.1 第一步首先,用git的clone命令將MaterialDesignLibrary下載到本地。2.2 第二步進入AS,File->Import Project,然後找到MaterialDesignLibrary目錄,雙擊該目錄下的build.gradle即可匯入項目。2.3 第三步gradle可以看匯入好的Github上的MaterialDesignLibrary項目包含兩個module,包括MaterialDesignDemo和一個MaterialDesign。MaterialDesign的build.gradle檔案第一行為:apply plugin: ‘com.android.library‘,表示這是一個Library。MaterialDesignDemo的build.gradle檔案第一行為:apply plugin: ‘com.android.application‘,表示這是一個應用。他的這個項目使用的是引用本地已有的MaterialDesign庫,而本文第三部分要講的是引用網上中心庫的MaterialDesign庫。兩種方法都可以,但後一種更加方便更常用,第一種方法不太常用。 第二步之後,可能會出現很多錯,通常是因為配置問題,這部分詳見本文下面的常見錯誤。 注意:一定要確保根目錄下的setting.gradle裡面是include ‘:MaterialDesign‘, ‘:MaterialDesignDemo‘。表示以上兩個檔案夾都是module。3. 在自己的項目中引用MaterialDesignLibrary還是之前的TestMe項目,只需要在TestMe/app/build.gradle中的dependencies中加入compile ‘com.github.navasmdc:MaterialDesign:[email protected]‘即可,如下:1234567dependencies { // 編譯libs目錄下的所有jar包 compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) //多個檔案 //compile files(‘libs/foo.jar‘) //單個檔案這樣寫 compile ‘com.android.support:appcompat-v7:22.0.0‘ //編譯第三方庫 compile ‘com.github.navasmdc:MaterialDesign:[email protected]‘}4. 常見錯誤AS在匯入開源的項目或者第三方庫的時候經常會出現的錯誤如下。其實很多都是各種工具的版本問題。4.1Error:failed to find Build Tools revision 21.1.1 Install Build Tools 21.1.1 and sync project是因為該開源庫對應的Build Tools的版本你的AS裡面沒有。解決方案是點擊他的連結進行下載。或者更改每個model裡面的build.gradle檔案中的buildToolsVersion "21.1.1"為本機裡面有的Build Tolls版本。4.2Error:failed to find target android-18 : /Users/xujin/develop/adt-bundle-mac-x86_64-20140702/sdkInstall missing platform(s) and sync project是因為該開源庫對應的android sdk的版本你的機器裡面沒有。解決方案同上,要麼下載,要麼改改配置。更改每個model裡面的build.gradle檔案中的compileSdkVersion 21為本機裡面有的sdk版本。4.3Error:(44, 30) 錯誤: -source 1.6 中不支援 diamond 運算子 (請使用 -source 7 或更高版本以啟用 diamond 運算子)出錯的原因是因為代碼中有 List cars = new ArrayList<>();,java在1.7引入了鑽石運算子<>,解決辦法有兩種。一是更改編譯的java sdk版本,而是將出錯代碼改為List cars = new ArrayList();4.4Error:(37) No resource identifier found for attribute ‘checked’ in package ‘com.gc.materialdesign’是因為第37行的materialdesign:checked="true",命名空間materialdesign裡面沒有checked屬性,改成check即可,代碼如下。(之前遇到過,姑且說說。)12345678參考資料importing-libraries-into-android-studioAndroid Studio系列教程四—Gradle基礎MaterialDesignLibrary

Android-Android studio 匯入開源項目以及常見的錯誤

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.