1. 程式人生 > >Android Studio : 匯入第三方包

Android Studio : 匯入第三方包

1. 匯入Eclipse + Adt 專案到Android Studio

如果你之前一直是用Eclipse + Adt開發的專案,想要匯入到Android Studio中繼續開發

  • 來到歡迎頁面,選擇如下紅色方框選項
    這裡寫圖片描述
  • 點選下一步,會遇到下面提示框
    這裡寫圖片描述

    • 前兩個選項與Android Studio的依賴相關(依賴關係是一個指標,指向現有的軟體庫,您只需要指明你要使用什麼庫,而不需要將所有庫打包為jar檔案,然後構建系統就會在構建過程中去獲取相應的庫,可能是從本地源獲取,或者從它知道的網上原始碼庫獲取。)
    • 第三個選項是和Gradle的模組命名風格有關,如果你勾選了這個選項,你的新專案將有一個簡單的命名為app的單個模組,如果取消它,專案就會有一個跟專案名稱相同的模組,建議把它勾選
  • 點選finish,AS會自動build gradle (此處會耗時一會兒), 完成會有個import-summary.txt 檔案,該檔案主要是用來介紹gradle在構建過程以及當中遇到的一些問題。比如哪些檔案被重新移動或者組合等

  • 從Message視窗中可以看到一些錯誤提示:
    這裡寫圖片描述
    提示中表示你的sdk中沒有該專案要求的api級別為10的build version,這裡你可以重新安裝缺失的build version,當然也可以通過更改設定的方式來完成。這裡我選擇後者,在app目錄下build.gradle中更改compileSdkVersion 為21解決。(此處的api級別21是我sdk中可以編譯的最新的build version)。更改完build.gradle後,需要同步。然後Gradle專案就會重新構建。
    上一節我們有說過Gradle是一個整合到Android Studio的構建系統。

2. 匯入帶有第三方jar包的Eclipse專案到Android Studio

匯入一個帶jar檔案的專案到AndroidStudio,如果使用了Android 內建庫以外的jar檔案,其中一些jar檔案將被轉換成依賴關係,而另外一些會被顯示的匯入, 這裡會告訴你如何處理一個專案的jar檔案沒有轉換成依賴關係的情況。
這裡寫圖片描述
如上所示,匯入XMLJDOMParser專案,這個專案使用了流行的JDOMParser,是一個開源的專案,沒有由Oracle或google或者其他主要的軟體供應商管理,但很受歡迎在Java中大量被使用。

檢視app目錄下的build.gradle檔案,可以發現如下:

dependencies {
    compile 'com.android.support:support-v4:23.2.1'
    compile files('libs/jdom-2.0.3.jar')
}

匯入之後發現在libs資料夾下 jdom-2.0.3.jar檔案已被保留。

在許多專案中,當你匯入它們,jar檔案將不被轉化成依賴關係,取而代之的只是在build.gradle 檔案中對庫的一個引用。 但是,在這個專案,jdom 被保留下來,並有一個對jar檔案的引用加入,檢視gradle檔案的依賴關係部分,明確的指向這個版本的jar檔案。這就是匯入專案是可能出現的情況。

當你使用一個軟體庫,而那是構建系統已知的軟體庫,庫本身將不會匯入。而表示依賴關係的字串將被新增到build.gradle,以引用該庫。如一些Android內建的支援庫(com.android.support:support-v4:23.2.1)。如上程式碼第一種表示方式就是這個情況。但是,當該jar檔案沒有被識別,它會已其原始狀態被匯入到該專案,並且對該jar檔案的引用會被新增到依賴關係的部分。無論哪種方式,該專案應該還是有效,你應該能夠用Android Studio繼續進行開發。

3. 使用Android Studio 匯入Jar包

下面我們來介紹一下在Android Studio中新增外部的Jar包,Android Studio新增Jar檔案的方法有幾種,如何新增Jar檔案到你應用程式的依賴,取決於你要如何的去使用它。
如果你正在開發一個單一的專案,而你只是使用JAR檔案一次,你可以使用一個非常簡單的工作流程,那麼複製JAR檔案放到目錄結構中,然後將其新增為一個庫;如果你要將JAR檔案共享到多個專案中,你還可以使用另一個種簡單的辦法。下面我們來學習一下這兩種方式。

新建一個HelloWord專案,,如下圖所示,我們將匯入Jdom包(一個解析和生成xml的庫)。
這裡寫圖片描述

1. 方法一:

  • 複製該Jar檔案到app目錄下的libs資料夾中,此時JAR檔案不一定會被註冊,並可供編碼和編譯使用
    這裡寫圖片描述
  • 右鍵單擊jar檔案,選單底部,選擇將其新增為庫,彈出一個Create Library對話方塊,點選OK。此時會看到一個短暫的提示,表示Gradle正在同步。然後在app下的build.gradle下檢視,你可以看到已新增的一行編譯特定的jdom-2.0.5.jar JAR檔案作為專案的一部分。
    compile files('libs/jdom-2.0.3.jar')

此時你就可以在java 程式碼中使用該Jar包了,編譯通過就說明我們新增該庫是成功的。這種方式是在專案的app modules中新增依賴關係,檢視Project Structure中的modules中的app模組,在Dependencies選項卡中,可以從這裡新增依賴關係,點選”+” 和 “-” 來新增和刪除你的依賴模組。如下圖所示:
這裡寫圖片描述
如果想要移除此Jar包,你可以選擇jdom行,點選”-“刪除該依賴關係,之後AndroidStudio會重新構建應用程式,然後檢視build.gradle 檔案中的一行,可以看出已經自動刪除了,現在已經完全移除jar包,可以直接刪除此jar包。


2. 方法二:
上述方式是一種比較簡單的在主應用程式app Modules下新增依賴關係的方式,第二種是新建一個自己的Modules,新增一個jar檔案到它自己的Modules,然後該Modules與你的主應用程式有依賴關係。

  • 在專案開啟的情況下,選擇File –> New Module 選擇匯入一個現有的JAR 或者 AAR 包作為它自己的模組,點選下一步,然後選擇我想要的匯入的jar包,JDOM檔案。鍵入所需要的file name,如下所示:
    這裡寫圖片描述

  • 在Project Structure中檢視可以看到 Modules中多了剛剛匯入的jdom模組了。點選app進入Dependencies依賴關係選項卡,點選+號,選擇Choose Modules,選擇剛剛新增的jdom模組依賴,點選確定,此時Gradle會再次同步。如下所示:
    這裡寫圖片描述
    檢視build.gradle 可以最後一行自動為其添加了依賴關係了。

    compile project(':jdom-2.0.3')
  • 最後重新rebuild Project,以確保所有程式碼可以編譯通過。以上就是一種建立一個獨立的Modules,你現在可以新增其他庫到模組當中,它們就會自動成為當前應用程式的一部分

以上就是以不同的方式整合jar檔案到你的Android應用程式,並作為依賴。這是瞭解依賴的一個好的開始,這是一種連線一切程式碼到你要整合的應用程式中的方法。
接下來會告訴你另外一種方式新增,用一種叫做 “遠端儲存庫”的方式。

3. 使用Moven依賴關係新增遠端庫

前面已經介紹瞭如何新增一個依賴到一個專案連結到你提供的*.jar檔案。你也可以連結到存在的別的地方的庫,無論是sdk自帶的庫或是從”遠端倉庫”自動下載的庫。

Android Studio的依賴系統是基於一個被稱為Maven的架構,而Maven倉庫是庫的”庫”。這是一個開發者可以新增庫的地方,然後其他開發人員可以下載它們。

現在我們來學習一下如何通過Moven來新增一個遠端庫,新建一個GsonApp的專案,需要新增一個Gson庫,用來處理Json格式的資料解析。
這裡寫圖片描述

上一講: Android Studio : Gradle 講到兩個build.gradle 指令碼檔案,第一個處於頂層目錄結構的build.gradle檔案,這個檔案一般不會去修改他,這裡面有兩個應用了jcenter ()方法, 這與遠端倉庫的使用至關重要。還有一個在app目錄下的build.gradle檔案,包含依賴關係。比如 如下就是一個引用現有庫的例子:

compile 'com.android.support:appcompat-v7:23.1.121:23' 

它引用了開頭字串為com.android.support的那些庫,然後引用了特定的庫 appcompat-v7。現在我們來了解這些庫來自何處?我們開啟SDK Manager,在頂部extras資料夾下Android Support Library 檢視該庫的版本:
這裡寫圖片描述
可以看到Android Support Library 的版本23.2.1版本已經安裝完成了,因此這種依賴表明 “我要23.2.1版的支援庫V7”,明確的引用我下載的這個檔案。當你生成你的專案,Gradle 根據這個字串,然後在一個列表查詢它,那是Android Studio安裝的一部分。它知道在哪裡可以得到該檔案。

但是如果使用不屬於Android sdk的庫呢?有一些Android很流行的開源庫,Android Studio同樣為你提供了一個非常簡單的方法,去尋找並連結到這類庫。

  • 與上一講所述方法類似,在Project Structure中點選app進入Dependencies依賴關係選項卡,點選+號,選擇Library dependenice(庫依賴關係), 這裡會列出所有流行庫的依賴字串。
    這裡寫圖片描述
  • 搜尋Gson,找到Moven Center裡面的相關的gson依賴字串。點選確定,然後在app下的build.gradle中檢視,可以看到最後一行已經添加了此字串了。

    compile 'com.google.code.gson:gson:2.6.2'

此時在java程式碼中測試可以使用此gson庫了。如果我能做到這一點,編譯並執行應用程式,那麼我知道我新增的依賴可以正常使用了。

在上面的操作中可以看到我還沒有包含 *.jar 檔案到我的專案,不過,Gradle會根據我專案的需要它搜尋那些庫。如果我需要更改庫的版本,可以在build.gradle檔案中去修改它的版本,也可以從Project Structure中去新增一個更新的依賴庫來。那麼,這些庫來自何方?它還是如何運作的呢?

我們回到頂層目錄裡面的build.gradle檔案裡,我們在看看這兩個jcenter() 方法呼叫。

...
    repositories {
        jcenter()
    }

...

allprojects {
    repositories {
        jcenter()
    }
}

跟蹤repositories下jcenter()方法,該方法位於RepositoryHandler.java中

    /**
     * Adds a repository which looks in Bintray's JCenter repository for dependencies.
     * <p>
     * The URL used to access this repository is {@literal "https://jcenter.bintray.com/"}.
     * The behavior of this repository is otherwise the same as those added by {@link #maven(org.gradle.api.Action)}.
     * <p>
     * Examples:
     * <pre autoTested="">
     * repositories {
     *     jcenter()
     * }
     * </pre>
     *
     * @return the added resolver
     * @see #jcenter(Action)
     */
    MavenArtifactRepository jcenter();

它返回一個MavenArtifactRepository例項。通過方法介紹瞭解到MavenArtifactRepository類封裝了repository的url 。該url應該是moven的倉庫地址 https://bintray.com/ 。bintray 是一個軟體分發服務,它支援gradle使用的功能,它可以讓下載需要的庫.

所以jcenter()這個方法,是指向在網路上的這個位置,這就是它是如何得到那個庫,並整合到Android Studio專案,這不是唯一可用的Maven倉庫,還有原始的倉庫,Maven Central,並且gson庫也被儲存在那裡。但是,Google團隊已經決定使用bintray倉庫。開啟url:jcenter.bintray.com 那顯示了倉庫儲存包的頂層檢視,這些庫都儲存在這裡。

所以這是關於這些遠端依賴如何運作的提示。還有jcenter()方法告訴構建指令碼到 jcenter.bintray.com 搜尋庫,然後app級別的構建指令碼對應著實際使用的庫,用包名,庫名稱和版本表示。在生成過程中,Gradle首先查詢本地,看它是否能在sdk庫找到,如果不能,它搜尋遠端倉庫,當發現了庫,就會下載,然後那個庫就可以Android Studio中使用了.

以上就是Android Studio新增庫的的幾種方式。

相關推薦

Android Studio : 匯入第三方

1. 匯入Eclipse + Adt 專案到Android Studio 如果你之前一直是用Eclipse + Adt開發的專案,想要匯入到Android Studio中繼續開發 來到歡迎頁面,選擇如下紅色方框選項 點選下一步,會遇到下面提示框

android studio 匯入第三方的jar,add as library的位置

因為學習需求,需要匯入一個jar包,也就是SlidingMenu,側滑的控制元件,但匯入時總是出錯。網上找了不少教程都是將 jar包放進lib檔案內,右擊包名,選擇 add as library。可是對於我這個新手來說,怎麼也找不到,可能很多3.0以上的小夥伴都有過跟我相同的經歷吧。

android studio 匯入第三方開源框架/專案,第三方Jar

匯入第三方開源框架/專案 以xUtils3開源框架為例: 一、下載第三方開源框架/專案 下載地址:[xUtils3](https://github.com/wyouflf/xUtils3) 二、把第三方開源框架/專案的library檔案考到專案

Android Studio匯入第三方類庫、jar和so庫

http://blog.csdn.net/lincyang/article/details/43951527/ 第三方類庫原始碼 將一網友的XMPP程式碼從ADT轉到AS時,發現其使用了第三方類庫,原始碼放在了lib下,直接在AS中Import project,第三方

Android Studio匯入第三方jar或依賴工程的方法

一 匯入jar包的方法 1.開啟自己的工程,將需要匯入的jar包copy到libs資料夾下 2.在匯入的jar包處單擊選單 Add As Library 3.點選ok 4.然後這裡就出現了

Android Studio匯入第三方java類庫含原始碼

下面演示如何在本專案中匯入第三方的原始碼類庫,這裡例子是匯入photoedit類庫。 先把photoedit類庫copy到你專案的目錄下,如下圖所示: 新增後android studio的專案下會

Android Studio匯入arr,報錯找不到***.arr的問題分析與解決

匯入arr包時遇到一個問題,無法找到對應的arr檔案,但是那個檔案明明就在那,見鬼了。既然arr檔案存在,那肯定是路徑的問題。肯定有人鬱悶的把檔案刪了,再倒入,試了多次,但是錯誤仍然堅挺的存在。其實

Android Studio引用第三方報support衝突

報com.android.support:appcompat-v7衝突 Error:Execution failed for task ':XXX:processDebugAndroidTes

Android Studio 引入第三方

方法一:新增jar包。 總之就是匯入三部曲。 第一:拿到jar包(不管你怎麼得到的git下載,找好朋友要,你老大丟你的,總之拿到就對了)。 第二:將jiar包貼上到我們專案的libs中。 第三步:選中jar包,右鍵單擊在彈出頁面選擇add as library

[Android]Android Studio匯入aar

Android Studio匯入aar包有兩種方式,分別為本地載入以及網路載入,由於網路載入涉及到釋出到mavenCentral託管的問題這裡不做討論;另外eclipse很久沒有使用了也不做討論;在這裡給大家說一種本地載入的方式,簡單快捷。 這裡演示的aar檔

android studio匯入第三方依賴庫遇到的問題

主要是遇到了兩個異常 1、 Error:Execution failed for task ':app:transformClassesWithJarMergingForHezongDebug'. > com.android.build.api.transform.T

Android Studio匯入第三方庫(SlidingMenu)教程

注意:本教程針對像SlidingMenu這樣使用Android Studio結構的第三方庫。可以免去繁瑣的gradle修改 開始: 第一步,去GitHub下載SlidingMenu (下載地址:https://github.com/jfeinstein1

Android Studio匯入第三方sdk

1.下載好第三方sdk 2.切換為Project 3.將jar包和.so檔案加入專案的libs資料夾下 4.開啟該專案的build.gradle檔案加入以下程式碼並重新build專案 sourceSets { main { jni

Android SlidingMenu 匯入第三方使用

package com.example.earl.dsdsdsdsdsdsdsds; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.jeremyfeinstein.slidingme

Android studio 匯入jar和刪除jar解決

文章結構: 1、什麼是jar包?——為什麼要匯入jar包?——怎麼匯入jar包?——如何刪除不需要的jar包? 一、什麼是jar包? jar包就是字尾為.jar的檔案。JAR 檔案(Java Archive File),顧名思意,它的應用是與 Java 息息相關的,是 J

Android Studio匯入第三方庫SDK(jar)的方法

Android Studio匯入第三方庫SDK(.jar)的方法: 1.把第三方庫SDK(.jar)拷貝到專案的app\libs目錄,舉例volley.jar庫說明 2.選單點選File->ProjectStructure 3.選擇app->Dependen

Android Studio 匯入第三方

匯入“***.jar”檔案(以UniversalImageLoader為例) 1、將“***.jar”檔案複製至專案中“libs”資料夾中; 2、將“***.jar”檔案右鍵單擊Add As Libr

Android studio 匯入另外一個專案作為依賴問題集錦

昨天導師給了個任務,就是把AS的一個專案匯入到另外一個專案中作為library,跟之前把github上的開源專案匯入到工程中作為依賴是一樣的,由於之前只匯入過jar包 沒有匯入過一個專案,因此我就開搜了,結果因為搜的姿勢不對一直不行,百度搜索第一個eoe論壇的辦法也不管用,下面貼出我成功匯入的方法:

Android Studio 載入第三方jar並提高該jar優先順序

framework原始碼編譯出來的jar路徑如下: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar droidlogic原始碼編譯(vendor/amlogic/frameworks/core/ja

Android匯入第三方jarCould not find class 異常解決

這幾天做一個通訊錄APP,在漢字排序的時候用到了開源專案pinyin4j,在java project中使用正常,無奈在android project中總是報異常 下面給出解決方法: 1、在工程目錄下新建一個externLib資料夾,將jar包拷貝到該資料夾 重新整理之後會