未能找到哈希字符串为android-23的目标。

103

尝试从git://github.com/osmdroid/osmdroid构建OpenStreetMapView时,遇到以下错误:

failed to find target with hash string android-23: D:\Users\myusername\AppData\Local\Android

我该如何解决这个问题?之前类似的问题建议检查是否安装了Android 23,但在我的情况下,它已经安装了。

以下是一些相关信息:

ANDROID_HOME为D:\Users\myusername\AppData\Local\Android\sdk

D:\Users\myusername\AppData\Local\Android\sdk\platforms\包含目录 \android-23\,(以及android-19、android-21、android-22、android-MNC)

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "org.osmdroid.example"
        minSdkVersion 8
        targetSdkVersion 23
        versionCode 16
        versionName "4.4-SNAPSHOT"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'

    }
    lintOptions {
        abortOnError false
    }
}


dependencies {
    compile 'android.support:compatibility-v4:23+'
    compile project(':osmdroid-android')
    //compile 'org.osmdroid:osmdroid-third-party:4.4-SNAPSHOT'
}

我尝试将targetSdkVersion和compileSdkVersion更改为22。这会导致错误消息从“android-23”更改为“android-22”。

SDK 管理器: 输入图像描述

20个回答

80
在我的情况下,清除缓存没有起作用。
在SDK管理器中,请确保勾选“显示包描述”复选框;然后您还应选择要安装的版本的“Google APIs”。
安装它,然后您就可以了。

2
这个可行。在 SDK 管理器完成后,需要下载构建工具,但绝对不需要删除 .gradle 文件夹或使缓存失效。 - Bill Mote
谢谢!运行得很好。 - ace_ventura

21
在Android Studio中,文件 -> 清除缓存/重启解决了我的问题。

1
这只是对@AlLelopath答案的改进。 - Mohammed Ali

17

这是这个问题的答案。

Gradle有时会变得很愚蠢,清除缓存是我找到的唯一解决办法。您会在用户主目录下找到一个隐藏的.gradle文件夹,以及另外一个位于osmdroid检出位置的文件夹。


3
我已经删除了文件夹,重启过电脑,但问题仍然存在。 - htafoya
这个错误在我进行全新安装时发生,因此没有缓存需要清除。 - Cerin

12

我解决了自己的问题,方法是打开 Android SDK 管理器并安装所有 23.x.x 版本的构建工具。

请参考下面的截图。

在此输入图片描述


搞定了!(在Mac上使用Deco)谢谢! - JeremyF
在Android Studio的工具菜单中似乎不再有名为“SDK Manager”的条目了... - Cerin

5

更新:此答案发布后(2016年4月)的Android Studio不适用

注意:我认为这可能是Android Studio中的一个错误。

enter image description here

  1. 进入“项目结构”
  2. 选择应用程序模块
  3. 在第一个选项卡“属性”下,将编译SDK版本从Google API xx更改为API XX(例如,从Google API 23更改为API 23)
  4. 按OK
  5. 等待正在进行的过程完成,在我的情况下,此时没有出现错误。

现在将编译的SDK版本恢复到Google API xx。

如果这不起作用,则:

  1. 使用Google API(而不是API xx),降低构建工具版本(例如,Google API 23和构建工具版本23.0.1)
  2. 按OK并等待正在进行的过程完成
  3. 将构建工具版本恢复到更改之前的版本
  4. 按OK
  5. 等待过程完成。
  6. 完成!

1
应用程序模块没有选项卡,更不用说名为“属性”的了。 - Cerin

3

遵循这些建议的步骤似乎是有效的:

提示:通过运行 /path/to/android/tools/android 打开 SDK 管理器

你需要以下内容: 1. "SDK平台" android-23 2. "Android SDK平台工具(最新版本) 3. "Android SDK构建工具"(最新版)


3
对我来说,问题是我写了compileSdkVersion '23'而不是23。引号是问题所在。

3
这个问题有两个解决方案:
1)通过Tools -> Android -> SDK Manager -> SDK Tools(确保您已选中“显示软件包详细信息”),下载相关的Android SDK。您的情况应该是Android 6.0(棉花糖/ API级别21)。
2)或者,打开您的build.gradle文件并更新以下属性:
- compileSdkVersion - buildToolsVersion - targetSdkVersion
将它们更新到您已安装的最新版本的Android API / 您想要使用的其他安装版本(尽管我始终建议选择最新版本以获得常规修复错误等原因)。如果您正在按照步骤2进行操作,还重要的是记得更新Android支持库版本(如果您的应用程序正在使用它)。这可以在构建文件的依赖项部分中找到,看起来像这样:
compile 'com.android.support:appcompat-v7:27.0.2'
(将27.0.2替换为您打算与应用程序一起使用的API级别的最新支持库版本)

3

我曾经遇到过另一个数字的相同问题,以下方法对我有效:

  1. 点击顶部错误信息“Gradle project sync failed”,在文本中找到“Open message view”并打开

  2. 在左下角的“Message Gradle Sync”窗口中,点击提供的解决方案“Install missing ...”

  3. 如果需要,重复步骤1和2

23:08 Gradle 同步失败:无法在 C:\Users\vik\AppData\Local\Android\Sdk 中找到哈希字符串为“android-26”的目标

Android SDK 在左下角提供了解决方案 Android SDK providing a solution in the bottom left corner


请在您的图像链接消失的情况下添加更多信息,以便其他人即使在链接失效后也能跟随答案。 - Dessus

2

我通过将compileSdkVersion更改为24,将targetSdkVersion更改为24,并将compile更改为com.android.support:appcompat-v7:24.1.0来解决此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接