2014-09-05 22 views
2

目前(Android Studio 0.8.6使用Android SDK工具23.0.2),這是由嚮導生成的新Android庫的build.gradle:適用於Android庫模塊的最小build.gradle

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 19 
    buildToolsVersion '19.1.0' 

    defaultConfig { 
     applicationId "com.mycompany.mylibrary" 
     minSdkVersion 19 
     targetSdkVersion 19 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile project (':model') 
} 

我們可以安全地從那裏移除什麼?也就是說,在Android庫的Gradle文件中,我們應該擁有的絕對最小值是多少?

+0

你想完成什麼?你爲什麼試圖從構建文件中刪除東西?有了更多的細節,你可以得到更好的答案。 – 2014-09-05 20:35:42

+1

只是因爲我不喜歡有沒有用的信息,而且可能最終會過時。這個applicationId是否有用,如果我升級app的targetSdkVersion會怎麼樣? – espinchi 2014-09-05 20:44:29

回答

2
apply plugin: 'com.android.library' 

必填。這告訴Gradle構建系統爲了構建而加載哪些插件。沒有這個,它不知道如何建立你的項目。


compileSdkVersion 19 
buildToolsVersion '19.1.0' 

這些都被Android的搖籃插件需要,你會得到一個錯誤,沒有他們。


defaultConfig { 
    applicationId "com.mycompany.mylibrary" 
    minSdkVersion 19 
    targetSdkVersion 19 
    versionCode 1 
    versionName "1.0" 
} 

這是沒有嚴格要求,並提供您提供的價值某處你的版本將沒有它成功(;不能僅僅從你的build文件刪除,而不做其他任何事情和不會破壞你的項目),但它在Android-Gradle項目中被認爲是慣用的。這些值被插入到AndroidManifest.xml中,該文件是作爲清單合併的一部分生成的,並被內置到項目中;您在此指定的值將自己替換您實際放入AndroidManifest.xml文件中的任何值。 applicationId對應於manifest標記的package屬性,並且是至關重要的。

不幸的是,這是Android開發人員習慣於Eclipse的一些困惑的原因,這些開發人員傾向於修改清單,因爲這是如何完成的,並且在構建文件覆蓋這些更改時會感到困惑。

爲什麼這些東西從清單移動到構建文件?因爲在Gradle中可以使用構建類型和風味的概念,而這些值可以根據構建的風格+類型組合而變化。在構建腳本中表達這些值而不是通過大量的部分AndroidManifest.xml文件可能會更加方便。


buildTypes { 
    release { 
     runProguard false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 

此部分(至少存根release生成類型)可以不是嚴格必要的。構建系統會自動創建調試和發佈構建類型,因此您無需告訴它創建發佈構建。根據文檔(http://tools.android.com/tech-docs/new-build-system/user-guide),runProguard對於發佈版本已經是錯誤的,並且如果您沒有運行Proguard,則不需要指定其配置文件。就像這裏的任何事情一樣,提醒你如果你需要Proguard,這對於發佈版本來說是很常見的事情,所有開發人員在準備發佈應用程序時都應該考慮這些。

+0

當我嘗試在defaultConfig中設置應用程序ID時,出現錯誤「庫項目無法設置applicationId」...看起來像庫是包名稱是AndroidManifest.xml中唯一需要的東西... – 2017-03-04 19:46:21