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

failed to find target with hash string android-23

尝试从 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-跨国公司)

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-22" 而不是 "android-23"。

SDK 管理员:

的答案。

Gradle 有时会变得愚蠢,清除缓存是我找到的唯一解决方案。您会在用户主文件夹下找到一个隐藏的 .gradle 文件夹,在 osmdroid 的结帐位置找到另一个文件夹。

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

Note: I think this might be a bug in Android Studio.

  1. 转到项目结构
  2. Select 应用模块
  3. 在第一个选项卡“属性”下,将编译 SDK 版本从 Google API xx 更改为 API XX(例如 API 23 而不是 Google API 23)
  4. 按确定
  5. 等待正在进行的过程完成,就我而言,此时我没有收到错误。

现在将已编译的 SDK 版本还原为 Google API xx.

如果这不起作用,那么:

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

打开 Android SDK 管理器并更新为最新版本。

就我而言,清除缓存无效。

在 SDK 管理器中,务必选中 "show package descriptions" 上的复选框;那么您还应该 select "Google APIs" 您愿意安装的版本。

安装它然后你应该没问题

在 Android Studio File -> Invalidate Caches/Restart 中为我解决了这个问题。

遵循这些推荐的方向似乎有效:

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

您将需要: 1. "SDK Platform" 对于 android-23 2.“Android SDK 平台工具(最新) 3. "Android SDK Build-tools"(最新)

我通过打开 Android SDK 管理器并为所有 23.x.x 版本安装构建工具来为我解决了这个问题。

见截图。

通过将 compileSdkVersion 更改为 24,将 targetSdkVersion 更改为 24,并将 compile 更改为 com.android.support:appcompat-v7:24.1.0

,它对我有用

对我没有任何作用。我将 SDK 路径更改为新的 SDK 位置并重新安装 SDK.Its 工作正常。

工具 > Android > SDK 管理器。

我在使用 windows 时遇到了这个问题。事实证明,我的配置文件中的 SDK 位置是问题所在。所以我不得不将我的 SDK 文件夹重新定位到文档然后它工作了。

这个问题有 2 个解决方案:

1) 通过工具 -> Android -> SDK 管理器 -> SDK 工具(确保你有 'Show Package Details')检查下载相关的 Android SDK。你的情况是 Android 6.0(棉花糖/API 21 级)

2) 或者,打开您的 build.gradle 文件并更新以下属性:

  • compileSdkVersion
  • buildToolsVersion
  • targetSdkVersion

您安装的 Android API 的最新版本/您要使用的另一个已安装版本(尽管我总是建议使用最新版本通常的原因:错误修复等)

如果您正在执行第 2 步,那么如果您的应用正在使用 Android 支持库版本,请务必记得更新它。这可以在构建文件的 dependencies 部分找到,看起来像这样:

compile 'com.android.support:appcompat-v7:27.0.2'

(将 27.0.2 替换为您打算在您的应用中使用的 API 级别的最新支持库版本)

我的抱怨 26。我查看了我的文件夹并找到了 27 的文件夹,但没有找到 26。所以我修改了我的 build.gradle 文件,将 26 替换为 27。compileSdkVersion、targetSdkVersion 和实现 (将这些数字更改为 v:7:27.02)。那改变了我的错误信息。然后我将 buildToolsVersion "27.0.3" 添加到 compileSdkVersion.

下的 android 括号部分

现在生成项目按钮可以处理 0 条消息。

接下来,如何在我的配置中实际 select 一个模块,以便我可以 运行 这个。

另一个号码也有同样的问题,这对我有用:

  1. 单击顶部的错误消息 "Gradle project sync failed",其中文本为“打开消息视图”

  2. 在左下角的"Message Gradle Sync"window中,点击提供的解决方案"Install missing ... "

  3. 必要时重复 1 和 2

23:08 Gradle 同步失败:无法在以下位置找到哈希字符串 'android-26' 的目标:C:\Users\vik\AppData\Local\Android\Sdk

AndroidSDK左下角提供解决方案

Run as administrator Andorid Studio

之后,这个问题为我解决了

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

问题是因为您运行的代码是在较旧的API级别创建的,而您当前的SDK管理器不支持运行它们。 所以请尝试以下操作; 1.Install 支持 API 级别 23 的 SDK 管理器。 转到 >SDK 管理器 >Android SDK ,然后 select API 23 并安装。 2.second 替代方法是更新您的 build.grade 应用模块以更改 compileSdkVersion,compile,等数字到你当前支持的API级别。

注意:请确保检查 API 和修订号并准确更改它们。否则您的项目将不会同步

从构建控制台中指定的 link 下载特定的 Android 版本。

确保 IDE 识别出您拥有包裹。即使在下载 28 后它也没有在我的上,所以我卸载然后重新安装它后意识到它没有出现在文件-项目结构-模块-应用程序下作为 SDK 的选择。

最重要的是,您可能想要更改构建路径以匹配。

有点相关,当我将 CompileSDK 强制更新到 28 时,最新的更新似乎能够编译,而不仅仅是达到 Google Play 的新 API 26 分钟要求.不过,这与依赖项有关,可能不会影响您的

AndroidSDK > SDK 平台> 并安装 API Level 23