簡體   English   中英

適用於Android的哪個Java版本具有不同的minSdkVersion和targetSdkVersion

[英]Which Java version for Android with different minSdkVersion and targetSdkVersion

使用Gradle編譯我的Android應用程序時,如何確定要使用的Java版本? 例如,我的gradle構建文件的一些片段如下所示:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    // Other settings

    defaultConfig {
        applicationId "com.example"
        minSdkVersion 15
        targetSdkVersion 22

        // Other default settings
    }
}

Android SDK版本19及更高版本支持Java SE 7,適用於KitKat及更高版本。 鑒於上述代碼段,我如何確定是否應該使用Java SE 7或Java SE 6進行編譯和源代碼兼容?

minSdkVersiontargetSdkVersion都不用於確定編譯的源代碼兼容性。 源兼容性和編譯的決定因素是compileSdkVersionbuildToolsVersion

我使用了具有以下值的gradle文件:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    // Other settings

    defaultConfig {
        applicationId "com.example"
        minSdkVersion 8
        targetSdkVersion 23

        // Other default settings
    }
}

專門用於測試的代碼片段是:

public void onCreate(Bundle bundle) {

    ...

    List<String> strings = new ArrayList<>();
    strings.add("John Doe");
    strings.add("Jane Doe");
    strings.add("Bill Gates");
    strings.add("Mark Zuckerberg");

    ListView listView = (ListView) findViewById(R.id.list);
    ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_gallery_item, strings);
    listView.setAdapter(adapter);

    ...
}

當您將構建工具更改為buildToolsVersion = '17'您會收到一條錯誤消息:

The SDK Build Tools revision (17.0.0) is too low for project ':app'. Minimum required is 19.1.0

當您將其更改為buildToolsVersion = '19.1.0' ,構建成功。

compileSdkVersion設置為小於buildToolsVersion主值的任何值時,構建失敗,主要是由於缺少資源依賴性。

minSdkVersiontargetSdkVersion設置為targetSdkVersion下面的任何版本都無效。

PS 1.主要值是第一個點之前的第一個整數。 例如buildToolsVersion '23.0.2'主要值是23。

PS 2.我使用Android API Level 10(Gingerbread 2.3.6)的真實設備測試了成功構建的結果。 我將源代碼兼容性設置為JDK 7,並使用了Java 7中引入的Diamond運算符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM