如何更改Android应用的已定义API版本?

时间:2016-06-11 10:29:49

标签: android android-sdk-manager

我在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>

所以我在线搜索,我找到了这个SO链接:Android studio - Failed to find target android-18

好的,我进入工具&gt; Android&gt; SDK Manager 并且事实上我安装了 Android 6 ,对应 API级别23 Android 4.3 对应 API 18级

那意味着什么?这意味着我已经在Android框架上安装了不同的版本?(作为一个框架或者什么是SDK相当吗?)

那么,在Android Studio上我可以安装不同版本的SDK吗?

我认为API级别必须以某种方式定义到已下载的应用程序中。如何指定此应用程序不使用 API级别18 ,而是使用已安装的 API级别23 ?我认为这不是问题,因为我已经安装了最新版本,必须支持最老版本的所有内容,是吗?

3 个答案:

答案 0 :(得分:1)

  1. 您可以将compileSdkVersion中的build.gradle版本更改为23或本地计算机中的任何版本

  2. 您可以从SDK Manager获取API Level 18

答案 1 :(得分:1)

我会为您解释一下这个问题,然后为您提供解决方案。

您遇到此问题,因为您的项目目标API级别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。

答案 2 :(得分:0)

  

我进入工具&gt; Android&gt; SDK Manager和infact我已经安装了Android 6对应于API级别23而不是Android 4.3对应于API级别18。

     

那意味着什么?这意味着我已经安装了不同版本的Android框架?

是的,您有更新版本的SDK。

  我可以在Android Studio上安装不同版本的SDK吗?

是的,这就是SDK Manager为

设计的内容
  

我认为API级别必须以某种方式定义到已下载的应用程序中。如何指定此应用程序不使用API​​级别18,而是使用已安装的API级别23?

已定义。检查模块中void matrix_deallocation(MATRIX* matrix) //this function deallocates a matrix { for ( int i = 0; i < matrix->n_rows; i++ ) // ^^^^^^ { free( matrix->pp_matrix[i] ); } free(matrix->pp_matrix); } AndroidManifest.xml文件的应用程序(不在项目根目录中)。您应该看到build.gradleminSdk和/或targetSdk的某种组合,后面有一个数字。由于您收到有关缺少SDK 18的错误,因此该数字将为compileSdk

  

我认为这不是问题,因为我已经安装了最新版本,必须支持最老版本的所有内容,是吗?

支持库与核心SDK分开。您无法在版本低于23的设备上运行SDK 23特定代码,因此,为安全起见,建议您先从下载SDK 18开始运行,然后再尝试更新18号码。