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
}
}
Java android SDK 版本 19 及更高版本支持 SE 7,即 KitKat 及更高版本。鉴于上面的代码片段,我如何确定我应该使用 Java SE 7 还是 Java SE 6 来进行编译和源代码兼容性?
minSdkVersion
和 targetSdkVersion
均未用于确定编译的源代码兼容性。源兼容性和编译的决定因素是 compileSdkVersion
和 buildToolsVersion
.
我使用了具有以下值的 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
主要值的任何值时,构建失败,主要是由于缺少资源依赖性。
将 minSdkVersion
和 targetSdkVersion
设置为低于 compileSdkVersion 的任何版本都无效。
P.S. 1. Major value is the first integer before the first dot. e.g. buildToolsVersion '23.0.2'
has major value is 23.
P.S. 2. I tested the results of a successful build with a real device with Android API Level 10, (Gingerbread 2.3.6). I set source code compatibility to JDK 7, and used the Diamond Operator introduced in Java 7.
当使用 Gradle 编译我的 Android 应用程序时,如何确定要使用哪个 Java 版本?例如,我的 gradle 构建文件的一些片段如下所示:
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
// Other settings
defaultConfig {
applicationId "com.example"
minSdkVersion 15
targetSdkVersion 22
// Other default settings
}
}
Java android SDK 版本 19 及更高版本支持 SE 7,即 KitKat 及更高版本。鉴于上面的代码片段,我如何确定我应该使用 Java SE 7 还是 Java SE 6 来进行编译和源代码兼容性?
minSdkVersion
和 targetSdkVersion
均未用于确定编译的源代码兼容性。源兼容性和编译的决定因素是 compileSdkVersion
和 buildToolsVersion
.
我使用了具有以下值的 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
主要值的任何值时,构建失败,主要是由于缺少资源依赖性。
将 minSdkVersion
和 targetSdkVersion
设置为低于 compileSdkVersion 的任何版本都无效。
P.S. 1. Major value is the first integer before the first dot. e.g.
buildToolsVersion '23.0.2'
has major value is 23.P.S. 2. I tested the results of a successful build with a real device with Android API Level 10, (Gingerbread 2.3.6). I set source code compatibility to JDK 7, and used the Diamond Operator introduced in Java 7.