找不到带有哈希字符串android-23的目标


94

尝试从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-22”,而不是“ android-23”。

SDK管理器: 在此处输入图片说明

Answers:


79

以我为例,清除caché无效。

在SDK Manager上,请确保选中“显示软件包说明”框;那么您还应该为要安装的版本选择“ Google API”

安装它,然后就可以了


2
这工作了。SDK管理器完成后必须下载构建工具,但绝对不需要执行delete .gradle文件夹或invalidate缓存。
比尔·莫特

谢谢!很好
carlodonz


18

这个问题的答案。

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


3
我删除了文件夹,留了胡子,仍然有问题
htafoya

13

我通过打开Android SDK Manager并为所有23.xx版本安装了构建工具为我解决了该问题。

查看屏幕截图。

在此处输入图片说明


做到了!(在Mac上使用Deco)谢谢!
JeremyF

5

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

  1. 转到项目结构
  2. 选择应用程序模块
  3. 在第一个标签“属性”下,将Compile 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. 做完了!

3

遵循以下建议的指示似乎可行:

提示:通过运行以下命令来打开SDK管理器:/ path / to / android / tools / android

您将需要:1.适用于android-23的“ SDK平台” 2.“ Android SDK平台工具(最新)” 3.“ Android SDK构建工具”(最新)


3

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

  1. 点击顶部的错误消息“ Gradle项目同步失败”,其中文字为“打开消息视图”

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

  3. 必要时重复1和2

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

Android SDK在左下角提供解决方案 Android SDK在左下角提供解决方案


如果您的图片链接消失了,请添加更多信息,以便即使链接消失了,其他人也可以跟随答案。
德萨斯'18


2

有2个解决方案可以解决此问题:

1)通过工具-> Android-> SDK管理器-> SDK工具(确保已显示“显示软件包详细信息”)下载相关的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级别的最新支持库版本)



1

什么都没有为我工作。我将SDK路径更改为新的SDK位置并重新安装了SDK。它运行正常。


1

工具> Android> SDK管理器。

在此处输入图片说明


我通常不喜欢简洁的答案,但这确实很不错。为我解决了所有问题。
Le Mot Juded

谢谢@LeMotJuiced。
CoolMind

1

使用Windows时出现此问题。原来,我个人资料中的SDK位置是问题所在。因此,我不得不将我的SDK文件夹重新放置到文档中,然后它才起作用。


1

我的抱怨是26。我在文件夹中找到了27的文件夹,但没有找到26。所以我修改了build.gradle文件,用27替换了26。compileSdkVersion,targetSdkVersion和实现(将这些数字更改为v:7 :27.02)。那改变了我的错误信息。然后,在compileSdkVersion下的android括号部分中添加了buildToolsVersion“ 27.0.3”。

现在,make project按钮可以处理0条消息。

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


1

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


1

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


1

这poblem之后解决了我Run as administratorAndorid Studio


0

造成此问题的原因是,您正在运行的代码是在较旧的API级别创建的,并且您当前的SDK Manager不支持运行它们。因此,请尝试以下操作;1.安装支持API级别23的SDK Manager。转到> SDK Manager,> Android SDK,然后选择API 23并安装。2.第二种方法是更新build.grade应用程序模块,以将compileSdkVersion,compile和其他编号更改为当前支持的API级别。

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


0

确保IDE识别出您拥有该软件包。即使下载了28,它也没有出现,因此我卸载后重新安装它,因为意识到它没有出现在File-Project Structure-Modules-App下作为SDK的选择。

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

稍微相关一点,当我对CompileSDK强制将更新一直更新到28时,似乎可以编译最新更新,而不仅仅是Google Play提出的新API 26分钟要求。但是,这与依赖关系有关,可能不会影响您的依赖关系

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.