2017-06-26 88 views
4

Android的工作室已經自動更新以下組件API 26:設置gradle這個到Android O(API 26)

  • ROM - SDK,以API 26
  • 的Android SDK內建工具26
  • Android模擬器26.0.3
  • Android SDK中的平臺,工具26.0.0
  • Android SDK工具26.0.2

我gradle這個2.3.3:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 26 
    buildToolsVersion '26.0.0' 
    defaultConfig { 
     applicationId "com.mycompany.myapplication" 
     minSdkVersion 15 
     targetSdkVersion 26 
     versionCode 4 
     versionName "0.0.4" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    /////////If I change it to 26.0.0 it gives errors./////////// 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support:design:25.3.1' 
    compile 'com.android.support:support-vector-drawable:25.3.1' 
    compile 'com.android.support:support-v4:25.3.1' 
    ///////////////////////////////////////////////////////////// 
    testCompile 'junit:junit:4.12' 
} 

我有兩個問題(見搖籃註釋行):

我怎麼能知道最新版本的這些庫(我簡單地拋出隨機數,並嘗試了他們直到我找到最新版本)。

在排除的組中有'com.android.support',如果我刪除那些我需要指定這些庫嗎?我以這種方式看到很多人包括'com.android.support'庫,所以我想這樣做是有原因的。

我搜索了developer.android.com,最新版本是24.2.0(所以真的很老,我一直在使用25.3.1)。

回答

1

如果您確實想要使用26版本,則可以在依賴項末尾使用+字符。

compile 'com.android.support:appcompat-v7:26+' 

這樣,等級將採用以26開頭的最新版本。你的依賴。但是您會收到Android Studio的警告,因爲在兩個不同版本之間,行爲可能最終會發生變化,然後產生隨機效應。

要知道最新版本,只是到這裏看看:https://developer.android.com/topic/libraries/support-library/revisions.html

而完成,如果包括「com.android.support」,你將包括整個圖書館。你當然不需要包括所有的東西。如果您只使用回收視圖只需要添加:

compile 'com.android.support:recyclerview-v7:26.0.0-beta2' 
+0

謝謝你回答我的第二個問題。包括整個圖書館有什麼問題?像編譯時間慢一樣? – Exprove

+0

不僅編譯時間較慢。你的應用程序將比必要的更大。你的應用程序將包含無用的代碼,這是一個安全失敗。如果你對更大的庫做同樣的事情,你的應用程序的大小將成爲一個問題。我們不在桌面應用程序中,因此移動開發人員需要照顧內存和CPU使用(電池壽命)。希望它有助於:-D – olivejp

+0

你確定嗎?通常在面向對象的語言中,.exe(在本例中爲.apk)只編譯所使用的庫(因此,如果包含無用的庫,彙編代碼是相同的)。通常這是Linker的主要工作(將庫等存放到主文件中)。爲什麼Android會有所不同? – Exprove

0

檢查https://developer.android.com/topic/libraries/support-library/revisions.html並在頁腳設置語言爲英文以檢查最新版本的支持庫。目前是25.4.0(穩定)或26.0.0(測試版2)

+0

由於M8!正在檢查我的母語......沒有穩定的版本,所以我會等待。 – Exprove

+0

實際上穩定版本是25.4.0:只是該頁面沒有在其他語言上更新。你可以沒有問題地更新到25.4.0 –

+0

我明白了,但是我不能用API 26編譯那個版本,所以我現在要保留API 25。 – Exprove

0

試試這個:

allprojects { 
repositories { 
    jcenter() 
    maven { 
     url "https://maven.google.com" 
    } 
    } 
}