如何更改 Android 应用程序的已定义 API 版本?
How can I change the defined API version of an Android app?
我绝对是 Android 开发新手,在尝试构建我从 Internet 下载的示例项目时遇到以下问题。
当我尝试构建它时收到以下错误消息:
Error:Cause: failed to find target with hash string 'android-18' in: C:\Users\Andrea\AppData\Local\Android\sdk
<a href="install.android.platform">Install missing platform(s) and sync project</a>
所以我在网上搜索并找到了这个 link: Android studio - Failed to find target android-18
好的,所以我进入 工具 > Android > SDK 管理器,事实上我已经安装了 Android 6 对应于API 23 而不是Android 4.3 对应于API 18级.
那是什么意思呢?这意味着我已经安装了不同版本的Android框架?(SDK作为框架还是什么?)
那么,我可以在 Android Studio 上安装不同版本的 SDK 吗?
我认为 API 级别必须以某种方式定义到下载的应用程序中。我如何指定此应用程序不使用 API 级别 18 而是使用已安装的 API 级别 23 ?我认为这不是问题,因为我已经安装了必须支持最旧版本的所有内容的最新版本,是吗?
您可以将 build.gradle
中的 compileSdkVersion
版本更改为 23 或您本地计算机中的任何版本
您可以从SDK Manager获取API Level 18
。
I go into Tools > Android > SDK Manager and infact I have installed Android 6 corrisponding to the API level 23 but not Android 4.3 corrisponding to API level 18.
So what it means? It means that I have installed a different version of the Android framework ?
是的,您有更新版本的 SDK。
on Android Studio can I install different version of the SDK?
是的,这就是 SDK 管理器的设计目的
I think that the API level have to be defined in some way into the dowloaded application. How can I specify to this application to don't use the API level 18 but instead it use the installed API level 23 ?
已定义。检查应用程序模块中的 AndroidManifest.xml
或 build.gradle
文件(不在项目根目录中)。您应该会看到 minSdk
、targetSdk
、and/or compileSdk
的一些组合,后面还有一个数字。由于您收到有关缺少 SDK 18 的错误,因此该数字将为 18
.
I think that it is not a problem because I have installed a newest version that have to support all the stuff of the oldest one, is it?
支持库与核心 SDK 是分开的。您无法在版本低于 23 的设备上 运行 SDK 23 特定代码,因此,为了安全起见,建议您先下载 SDK 18,然后 运行 它,然后尝试更新compileSdkVersion
个。
我会为您解释一下问题,然后为您提供解决方案。
您遇到这个问题,因为您的项目是针对API level 18编译项目。所以你必须安装API 18 SDK来编译项目。
这就是 IDE 抱怨的原因,
Install missing platform(s) and sync project
SDK不是框架。 Android 框架完全相同,但 不同的 API 级别新更新被推送 到 SDK,最新的是 API 23,Marshmallow .
您不应下载较旧的 SDK 来编译项目。
始终尝试使用可用的最新 SDK。因此,只需转到 build.gradle
文件或 AndroidManifest.xml
文件并将 compileSdkVersion
更改为 23.
我绝对是 Android 开发新手,在尝试构建我从 Internet 下载的示例项目时遇到以下问题。
当我尝试构建它时收到以下错误消息:
Error:Cause: failed to find target with hash string 'android-18' in: C:\Users\Andrea\AppData\Local\Android\sdk
<a href="install.android.platform">Install missing platform(s) and sync project</a>
所以我在网上搜索并找到了这个 link: Android studio - Failed to find target android-18
好的,所以我进入 工具 > Android > SDK 管理器,事实上我已经安装了 Android 6 对应于API 23 而不是Android 4.3 对应于API 18级.
那是什么意思呢?这意味着我已经安装了不同版本的Android框架?(SDK作为框架还是什么?)
那么,我可以在 Android Studio 上安装不同版本的 SDK 吗?
我认为 API 级别必须以某种方式定义到下载的应用程序中。我如何指定此应用程序不使用 API 级别 18 而是使用已安装的 API 级别 23 ?我认为这不是问题,因为我已经安装了必须支持最旧版本的所有内容的最新版本,是吗?
您可以将
build.gradle
中的compileSdkVersion
版本更改为 23 或您本地计算机中的任何版本您可以从SDK Manager获取
API Level 18
。
I go into Tools > Android > SDK Manager and infact I have installed Android 6 corrisponding to the API level 23 but not Android 4.3 corrisponding to API level 18.
So what it means? It means that I have installed a different version of the Android framework ?
是的,您有更新版本的 SDK。
on Android Studio can I install different version of the SDK?
是的,这就是 SDK 管理器的设计目的
I think that the API level have to be defined in some way into the dowloaded application. How can I specify to this application to don't use the API level 18 but instead it use the installed API level 23 ?
已定义。检查应用程序模块中的 AndroidManifest.xml
或 build.gradle
文件(不在项目根目录中)。您应该会看到 minSdk
、targetSdk
、and/or compileSdk
的一些组合,后面还有一个数字。由于您收到有关缺少 SDK 18 的错误,因此该数字将为 18
.
I think that it is not a problem because I have installed a newest version that have to support all the stuff of the oldest one, is it?
支持库与核心 SDK 是分开的。您无法在版本低于 23 的设备上 运行 SDK 23 特定代码,因此,为了安全起见,建议您先下载 SDK 18,然后 运行 它,然后尝试更新compileSdkVersion
个。
我会为您解释一下问题,然后为您提供解决方案。
您遇到这个问题,因为您的项目是针对API level 18编译项目。所以你必须安装API 18 SDK来编译项目。
这就是 IDE 抱怨的原因,
Install missing platform(s) and sync project
SDK不是框架。 Android 框架完全相同,但 不同的 API 级别新更新被推送 到 SDK,最新的是 API 23,Marshmallow .
您不应下载较旧的 SDK 来编译项目。
始终尝试使用可用的最新 SDK。因此,只需转到 build.gradle
文件或 AndroidManifest.xml
文件并将 compileSdkVersion
更改为 23.