【问题标题】:failed to find target with hash string android-23找不到带有哈希字符串 android-23 的目标
【发布时间】:2023-03-19 17:42:01
【问题描述】:

当尝试从 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 管理器:

【问题讨论】:

    标签: android gradle android-build


    【解决方案1】:

    就我而言,清除缓存不起作用。

    在 SDK Manager 上,一定要选中 “显示包描述” 上的复选框;那么您还应该为您愿意安装的版本选择“Google API”

    安装它就可以了

    【讨论】:

    • 这行得通。 SDK管理器完成后必须下载构建工具,但绝对不需要删除.gradle文件夹或无效缓存。
    • 谢谢!工作正常。
    【解决方案2】:

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

    【讨论】:

    • 它只是改进了@AllLelopath 的答案。
    【解决方案3】:

    this question的答案。

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

    【讨论】:

    • 我删除了文件夹,重新启动,但问题仍然存在
    • 这个错误发生在我全新安装时,所以没有缓存要清除。
    【解决方案4】:

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

    查看屏幕截图。

    【讨论】:

    • 做到了! (在 Mac 上使用 Deco)谢谢!
    • Android Studio 工具菜单中似乎没有任何名为“SDK Manager”的条目...
    【解决方案5】:

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

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

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

    现在将 Compiled Sdk 版本恢复为 Google API xx。

    如果这不起作用,那么:

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

    【讨论】:

    • 应用模块没有标签,更不用说“属性”了。
    【解决方案6】:

    遵循这些推荐的方向似乎可行:

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

    您将需要: 1. android-23 的“SDK 平台” 2.《Android SDK Platform-tools(最新) 3.“Android SDK Build-tools”(最新)

    【讨论】:

      【解决方案7】:

      这个问题有两种解决方案:

      1) 通过工具 -> Android -> SDK 管理器 -> SDK 工具下载相关的 Android SDK(确保您已选中“显示包详细信息”)。您的案例是 Android 6.0(Marshmallow / 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 级别的最新支持库版本)

      【讨论】:

        【解决方案8】:

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

        1. 单击顶部的错误消息“Gradle 项目同步失败”,其中文本显示“打开消息视图”

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

        3. 如有必要,重复 1 和 2

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

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

        【讨论】:

        • 请在您的图片链接消失的情况下添加更多信息,以便即使链接消失,其他人也可以跟随答案。
        【解决方案9】:

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

        【讨论】:

          【解决方案10】:

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

          【讨论】:

            【解决方案11】:

            这个问题在Run as administratorAndorid Studio之后为我解决了

            【讨论】:

              【解决方案12】:

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

              【讨论】:

                【解决方案13】:

                没有什么对我有用。我将 SDK 路径更改为新的 SDK 位置并重新安装了 SDK。它运行良好。

                【讨论】:

                  【解决方案14】:

                  工具 > Android > SDK 管理器。

                  【讨论】:

                  • 我通常不喜欢简洁的答案,但这做得很好。为我解决了一切。
                  • 谢谢,@LeMotJuiced。
                  【解决方案15】:

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

                  【讨论】:

                    【解决方案16】:

                    我的抱怨是 26。我查看了我的文件夹,发现一个文件夹是 27,但不是 26。所以我修改了我的 build.gradle 文件,将 26 替换为 27。compileSdkVersion、targetSdkVersion 和 implementation(将这些数字更改为v:7:27.02)。这改变了我的错误信息。然后我将 buildToolsVersion "27.0.3" 添加到 compileSdkVersion 下的 android 括号部分。

                    现在制作项目按钮可以处理 0 条消息。

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

                    【讨论】:

                      【解决方案17】:

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

                      【讨论】:

                        【解决方案18】:

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

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

                        【讨论】:

                          【解决方案19】:

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

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

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

                          【讨论】:

                            【解决方案20】:

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

                            【讨论】:

                            • 你能进一步解释你的答案吗?
                            • 我的意思是在右上角打开 android studio 点击 android SDK Manager 它将在那里显示可用的 API 级别,查找 API 级别 23 选择并单击应用
                            猜你喜欢
                            • 1970-01-01
                            • 1970-01-01
                            • 2018-11-23
                            • 1970-01-01
                            • 2016-06-26
                            • 2017-03-20
                            • 1970-01-01
                            • 2018-07-19
                            • 1970-01-01
                            相关资源
                            最近更新 更多