2016-11-03 89 views
0

創建庫和AAR我看着一般信息在Android開發者here和以前的問題在堆棧溢出here1here2here3here4Android Studio中2.2

我想創建一個新的「實用程序庫」,我可以使用其他項目,但有一些我不明白。這是我做的:

首先,我在Android Studio中開始新的項目2.2(OS X 10.11):

Application name: Test 
Package name: com.example.tomihasa.test 
Minimum SDK: API 15: Android 4.0.3 
Activity: Empty Activity 
() Backwards Compatibility (AppCompat) 

其次,我開始一個新的圖書館:文件,新建,新建模塊,Android的圖書​​館

Application/Library name: MyLibrary 
Package name: com.example.tomihasa.mylibrary 
Minimum SDK: API 15: Android 4.0.3 

我現在有目錄:

/Users/tomihasa/AndroidStudioProjects/Test 
/Users/tomihasa/AndroidStudioProjects/Test/mylibrary 

爲什麼內部測試在MyLibrary?如果我想在其他地方使用它,它應該在別的地方嗎?我該如何移動它?

三,settings.gradle我:

include ':app', ':mylibrary' 

第四,我建立在MyLibrary:

Build, Make Module 'mylibrary'. 

here提到我找不到任何.JAR或.AAR包。

我錯過了什麼?

回答

0

您正在創建一個module,它位於您的Test項目中。你所有的模塊都會包含在這裏。模塊本身應該有它自己的構建腳本和目錄,並且可以獨立於項目的其餘部分使用,如果它沒有任何其他模塊的依賴關係。

如果需要,您仍然可以在其他項目中將此模塊用作庫。 Android Studio將在您每次構建文件時創建aar文件(調試和/或發佈)並將其放入您的Test/myLibrary/build/outputs/aar/文件夾中。它們應該分別命名爲{module-name}-debug.aar{module-name}-release.aar。您也可以將aar上傳到本地maven存儲庫或直接在其他項目中使用aar。如果沒有出現,那麼您可能需要通過訪問Build->Clean Project在Android Studio中完成一個乾淨的項目。

如果要創建獨立庫,則需要創建單獨的項目。然後,您必須使用上述方法之一將內置的aar導入到其他項目中。

編輯:

要安裝到本地倉庫,首先你需要在你的構建腳本mavenLocal()回購。

然後在你的圖書館的build.gradle文件,你需要應用maven插件:

apply plugin: 'com.android.library' 
apply plugin: 'maven' 

android { 

    ... 

    task installArchives(type: Upload) { 
     description 'This task will upload the build to mavenLocal()' 
     repositories.mavenInstaller { 
      pom.version = '0.0.1' 
      pom.artifaceId = 'myLibrary' 
      pom.groupId = 'com.example.tomihasa' 
     } 
    } 
} 

在gradle這個控制檯,輸入./gradlew build installArchives建立和上傳。

那麼你的項目,可以通過在mavenLocal()他們構建腳本,做安裝:

dependencies { 
    compile 'com.example.tomihasa:myLibrary:0.0.1' 
} 
+0

我所做的自動生成庫的build.gradle提到jcenter。我可以在沒有任何回購網站的地方使用本地圖書館嗎?自動生成的.aar文件被命名爲mockable-android-25.jar。這是正常的嗎? – tomihasa

+0

@tomihasa:那不是你的圖書館。這是一個包含所有Android方法的存根.jar,因此您的項目將在您的計算機上進行編譯。在你的庫的'build.gradle'文件中,你需要在頂部應用插件:'com.android.library'。 – DeeV

+0

對我來說它說的是jcenter()而不是maven。我還沒有研究過回購協議,所以我可以在沒有JCenter或Maven的情況下做所有事情,直到我準備好學習回購技術? – tomihasa

相關問題