欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Android中如何配置gradle-創(chuàng)新互聯(lián)

本文小編為大家詳細(xì)介紹“Android中如何配置gradle”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Android中如何配置gradle”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、鹽邊網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為鹽邊等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
// apply plugin: 'com.android.library' // 庫配置apply plugin: 'com.android.application' // 應(yīng)用程序配置repositories { // 引入AAR文件時,需要配置這個,AAR文件放在libs目錄中     flatDir {         dirs 'libs'     } }  android {     compileSdkVersion 25 // android編譯SDK的版本,即4.0SDK、5.0SDK等的android.jar文件     buildToolsVersion "25.0.2" // 使用SDK中編譯工具的版本     useLibrary "org.apache.http.legacy" // 在6.0上使用apache的httpClient包,原因是google在6.0上去掉了這個http請求庫      defaultConfig {         applicationId "com.xxx" // 應(yīng)用的包名可以在AndroidMainfest.xml中使用${applicationId}的方式引用這個包名         minSdkVersion 15 // 最小兼容版本         targetSdkVersion 25 // 目標(biāo)版本         versionCode 1 // 應(yīng)用的版本號         versionName SDK_VERSION // 應(yīng)用的版本名稱         multiDexEnabled true // 啟用多dex,如果app中的代碼方法數(shù)超過65535          testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" // android單元測試配置      }     sourceSets { // 指定代碼及資源的路徑,具體可以參考這里http://google.github.io/android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html         main {             manifest.srcFile 'AndroidManifest.xml' // 指定manifest.xml路徑             java.srcDirs = ['src'] // java文件的路徑,包名的上一層,多個目錄使用逗號分隔,如['src', 'core']             resources.srcDirs = ['src'] // resource資源所有的目錄,注意這里是指jar文件中包含的一些資源,如properties文件,而不是APK中的res資源             aidl.srcDirs = ['src'] // aidl文件的目錄             renderscript.srcDirs = ['src'] // renderscript文件的路徑             res.srcDirs = ['res'] // android APK中的資源路徑             assets.srcDirs = ['assets'] // android app中的asset目錄             jniLibs.srcDirs = ['libs'] // SO庫的路徑         }     }      lintOptions {         checkReleaseBuilds false // release編譯時禁用lint檢查         abortOnError false // 報錯不會停止打包,除非很嚴(yán)重的很影響         disable 'MissingTranslation', 'ExtraTranslation' // 禁用lint檢查中的一些選項     }      dexOptions {         javaMaxHeapSize "4g" // 設(shè)置編譯項目代碼時最在的堆內(nèi)存大小,否則項目過大時,編譯內(nèi)存溢出     }      compileOptions { // 具體參考這里http://google.github.io/android-gradle-dsl/2.3/com.android.build.gradle.internal.CompileOptions.html         sourceCompatibility JavaVersion.VERSION_1_7 // 設(shè)置代碼編譯的版本,一般是在使用JDK1.8時,配置這個,使編譯出來的jar包讓別人使用時更通用         targetCompatibility JavaVersion.VERSION_1_7     }      packagingOptions {         exclude 'META-INF/DEPENDENCIES.txt' // 排除這些第三方j(luò)ar中的聲明文件,否則編譯時容易導(dǎo)致報錯         exclude 'META-INF/LICENSE.txt'         exclude 'META-INF/NOTICE.txt'         exclude 'META-INF/NOTICE'         exclude 'META-INF/LICENSE'         exclude 'META-INF/DEPENDENCIES'         exclude 'META-INF/notice.txt'         exclude 'META-INF/license.txt'         exclude 'META-INF/dependencies.txt'         exclude 'META-INF/LGPL2.1'     }      buildTypes {          debug {             storeFile file("debug.keystore") // 簽名文件相對路徑            storePassword "android" // 簽名的密碼            keyAlias "androiddebugkey" // 別名            keyPassword "android" // 別名密碼             buildConfigField "boolean", "FLAG_DEBUG", "true" // 在BuildConfig.的類中自動生成public static final boolean FLAG_DEBUG = true;代碼            buildConfigField "String", "API_VERSION", "\"1\""                        ndk {             abiFilters "armeabi", "armeabi-v7a" // 只保留這幾種CPU架構(gòu)的SO庫,需要高版本的gradle才支持            }                       // jniDebuggable true // 啟用JNI debug,一般很少使用,不建議開這個選項,會影響java代碼的debug速度         }          release {             buildConfigField "boolean", "FLAG_DEBUG", "false"             buildConfigField "String", "API_VERSION", "\"1\""             minifyEnabled true // 在混淆時去除代碼中無用的內(nèi)容             shrinkResources true // 在混淆時去除無用的資源,針對res/目錄中的內(nèi)容,不用壓縮圖片的大小             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 配置混淆文件                          ndk {                 abiFilters "armeabi", "armeabi-v7a" // 只保留這幾種CPU架構(gòu)的SO庫,需要高版本的gradle才支持             }         }     } }  dependencies {    compile fileTree(include: ['*.jar'], dir: 'libs') // 導(dǎo)入libs目錄中的所有jar包     androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { // 排除group中的modle,注意group和module名稱com.android.support:support-annotations         exclude group: 'com.android.support', module: 'support-annotations'     })     compile 'com.android.support:appcompat-v7:25.1.0' // 使用google的appcompat-v7包     testCompile 'junit:junit:4.12' // 引入junit單元測試      compile 'com.android.support:multidex:1.0.0' // 加入加載多dex庫     compile files('libs/gson.jar') // 引用libs目錄中的gson.jar包     compile(name: 'HMS-SDK-2.4.0.300', ext: 'aar') // 引入HMS-SDK-2.4.0.300.aar文件,同時還需要參考文件頭部分的配置     compile('com.facebook.fresco:fresco:1.0.0') { exclude module: 'support-v4' } // 引入fresco庫,但不使用其中引用的support-v4庫,否則導(dǎo)致重復(fù)引入,編譯報錯duplicate     provided fileTree(dir: 'compilelibs', include: ['*.jar']) // 引入compilelibs目錄下面的jar文件參與編譯,但不將這些包的代碼打入APK、jar或AAR中。}// 使用jar任務(wù)生成jar文件,依賴assembleRelease的tasktask buildJar(type: Jar, dependsOn: ['assembleRelease']) {     destinationDir = file('build/outputs/jar/')     appendix = ""     baseName = ""     version = SDK_VERSION    // manifest信息     def map = ['Version': SDK_VERSION,               'Gradle': project.gradle.gradleVersion,               'Vendor': 'szcomtop.com',               'Date': new Date().getDateTimeString()         ]     manifest.attributes(map)// from( 'build/intermediates/classes/release/')     from(project.zipTree( 'build/intermediates/transforms/proguard/release/jars/3/3/main.jar'))     exclude('**/BuildConfig.class')     exclude('**/BuildConfig\$*.class')     exclude('**/R.class')     exclude('**/R\$*.class')     include('**/*.class') }// 使用Copy任務(wù)復(fù)制內(nèi)容task copySDK(type: Copy, dependsOn: ['buildJar']) {     from('build/outputs/jar')     into('../app/libs/')     include("*.jar") }

使用方法

本方會持續(xù)更新,隨著android的gradle工具的升級,可能有些配置會發(fā)生變化。比如 ndk.abiFilters  需要在高版本的gradle工具中才能使用,如何升級gradle版本,也可能會帶來編譯不通過等問題,需要耗費(fèi)較長時間去解決,所以請慎重。

關(guān)于一些配置的用法,下面舉其中一個例子,其他雷同。

比如怎么知道有這個 compileOptions 配置?這個配置下面的又有哪些可以設(shè)置?這些設(shè)置怎么去使用?能給哪些值?

compileOptions {  sourceCompatibility JavaVersion.VERSION_1_7 // 設(shè)置代碼編譯的版本,一般是在使用JDK1.8時,配置這個,使編譯出來的jar包讓別人使用時更通用  targetCompatibility JavaVersion.VERSION_1_7  }

從官網(wǎng)入手

android官方定義的gradle工具的使用說明文檔點(diǎn) 這里 ,gradle官方的說明文檔點(diǎn) 這里 。

點(diǎn)開鏈接中有個 DSL ,這個 DSL 是啥? DSL 就是 Gradle Build Language 的縮寫。哈哈,開個玩笑,是 Domain  Specific Language 的縮寫, Domain 可以理解為 Project 。

跑題了,繼續(xù)。

compileOptions示例

打開android gradle工具的官方說明文檔頁面會看到如下圖所示的版本選擇頁面:

Android中如何配置gradle

這個版本是與 android studio 項目根目錄下的 build.gradle 文件中的gradle版本是對應(yīng)起來的。同時發(fā)現(xiàn),這個版本會與  android studio 的版本對應(yīng)。如下圖所示:

Android中如何配置gradle

點(diǎn)擊當(dāng)前的2.2版本的鏈接,進(jìn)入到如下界面,如下圖所示,在左側(cè)找到 compileOptions  ,并點(diǎn)擊這個鏈接(熟悉這個官方文檔可以從左側(cè)的Home項開始):

Android中如何配置gradle

再點(diǎn)擊上圖中紅色框框標(biāo)記的鏈接,就會跳轉(zhuǎn)到如下圖所示位置的配置說明,這種跳轉(zhuǎn)的方式有點(diǎn)類似Java的API,只不過這個時候看到的應(yīng)該是詳細(xì),結(jié)果卻沒有:

Android中如何配置gradle

需要進(jìn)一步查看詳細(xì),只能是點(diǎn)擊上圖紅色框框標(biāo)記的鏈接,進(jìn)去之后就會發(fā)現(xiàn)熟悉的內(nèi)容了,如下圖所示:

Android中如何配置gradle

有沒有一種久違的感覺,終于快看到真相了吧?還差一步。compileOptions中可用的選項及含義已經(jīng)在上面寫的很清楚了。再點(diǎn)擊  sourceCompatibility 會跳到如下圖所示內(nèi)容:

Android中如何配置gradle

讀到這里,這篇“Android中如何配置gradle”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:Android中如何配置gradle-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://aaarwkj.com/article8/ccdpop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站建設(shè)動態(tài)網(wǎng)站、App設(shè)計、網(wǎng)站設(shè)計、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
国产乱码精品一区二区蜜臀| 五月婷婷六月丁香在线观看| 国产乱国产乱老熟女视频| 午夜草草视频在线观看| 国内一级片内射免费视频观看| 欧美日韩国产91在线| 久久婷婷综合激情亚洲| 国产高潮呻吟久久av| 精品国产免费第一区二区三| 99亚洲伊人久久精品影院| 欧美亚洲国产精品综合在线| 91人妻成人精品一区二区| 久久伊人亚洲中文字幕| 热门精品一区二区三区| 午夜情色视频在线观看| 日韩欧美亚洲天堂视频| 羞涩插射视频网站在线观看| 黄色录像黄色片黄色片| 国产亚洲精品久在线| 午夜高清影院免费观看| 亚洲巨大黑人一区二区三区| 巨乳人妻一区二区三区| 狠狠躁夜夜躁人人爽蜜桃| 太爽了少妇高潮在线看片| 日韩中文字幕在线有码| 邻居少妇扒开腿让我爽了一夜| 韩国三级福利在线观看| 国产伦一区二区三区三州| 国产亚洲一区二区三区日韩| 亚洲国产欧美日韩综合| 国产成人综合亚洲国产| 美女av在线免费观看| 亚洲综合色视频在线播放| 国产丝袜美女一区二区| 亚洲黄色艳情视频录像| 亚欧乱色熟女一区二区三区| 亚洲丰满老熟女激情av| 校园春色亚洲一区二区| 日本在线最新视频一区二区三区| 欧美精品成人免费在线| 欧美中文字幕在线精品|