无法使用哈希字符串'android-25'查找目标

时间:2016-11-07 03:45:26

标签: android

我有Android Studio 2.2。我正在尝试打开一个项目,但是我收到错误“无法找到带有哈希字符串的目标'android-25'”。在错误消息下方,我看到一个链接“安装缺失的平台和同步项目”。如果我点击此链接,我会收到另一个错误,即

  

“以下软件包不可用: - 软件包ID   平台;机器人-25"

在Android SDK工具中,我可以看到已经安装了“Android 7.0”(API级别24)。在检查Android verisons及其API级别的详细信息时,我发现Android Nougat的API级别为24-25。我想知道如何将API从API24更新到25?

10 个答案:

答案 0 :(得分:110)

您无需更新任何内容。只需从Android SDK Manager下载SDK for API 25,或者启动Android独立SDK管理器即可。错误是缺少平台而不是缺少工具。Android SDK Manager Android Studio 2.2.2

答案 1 :(得分:22)

好吧,我遇到了这个问题,但最后我找到了解决方案。

问题从这里开始: ["安装缺失的平台和同步项目" (链接)没有工作& gradle sync failed]

问题来源:只需查看app -> src-build.gradle,您就会找到参数

  1. compileSdkVersion 25

  2. buildToolsVersion "25.0.1"

  3. targetSdkVersion 25

  4. 注意:您可能会发现这些参数具有不同的值,例如 compileSdkVersion 23等。

    build.gradle中的上述参数会产生错误,因为它们的值与您当前的SDK版本不兼容。

    此错误的解决方案很简单,只需在Android Studio中打开一个新项目,即在新项目中goto app -> src-build.gradle

    在新项目的build.gradle文件中找到以下参数:

    enter image description here

    就我而言,这些是:

    compileSdkVersion "26"    
    buildToolsVersion "26.0.1"
    targetSdkVersion 26
    

    现在从新项目build.gradle文件中复制这些参数,并将它们发布到另一个项目的同一文件中(有错误)。

答案 2 :(得分:3)

我遇到了类似的问题

1:我尝试解决上面标记正确的答案但是我无法获得令人惊讶的系统设置(在MacBook上)。

大多数时候这样的错误&问题来自于将您的成绩档案替换为其他成绩档案,因为哪个成绩档不能正确同步,而且在构建项目问题时会出现问题。该问题与平台工具的非同步基本相关

解决方案a:转到文件,然后转到您的项目strucutre -modules -app-Properties -build工具版本 - 单击项目所需的选项(如果需要构建工具版本,则不选择任何其他选项)。这将同步等级文件,现在您可以根据您的要求转到gradel并更改目标版本和构建工具版本。您将被提示下载所需的平台工具以进行同步,现在单击安装工具版本并让项目构建

解决方案b:如果您可以选择系统设置并安装平台工具,请尝试使用Anuja Ans。

答案 3 :(得分:1)

您可以转到安装目录打开SDK独立版,只需右键单击SDK Manager.exe,然后单击以管理员身份运行。我希望它会有所帮助。

答案 4 :(得分:1)

确保您的计算机已连接到互联网,然后单击错误消息附带的链接,即“安装缺少的平台和同步项目”,特别是如果您的计算机规格较低,请给它几秒钟,它将打开一个名为 SDK Quickfix Installation 的窗口,从那里一切都很简单。

答案 5 :(得分:1)

对于Android-28,我也遇到了同样的错误。在SDK Manager-SDK Platform中,它显示了部分安装了Android API 28,并且没有可用的进一步更新。因此,我从 SDK工具更新了 ANDROID-SDK-BUILD-TOOLS ,并在重新启动项目之后。它会工作。这可能对其他遇到与我面临相同问题的人很有帮助。

答案 6 :(得分:0)

默认的gradle版本3.3可能有一些错误,我切换到gradle 3.5并且一切正常

答案 7 :(得分:0)

似乎只有我这么笨拙,因为我还没有找到我的案子所需要的解决方案。

我正在开发一个多模块项目,因此在单个gradle脚本中提取了基本的android模块配置。 sdks / libs的所有具体版本也都提取为脚本。

包含版本的脚本如下:

connection.onmessage =(e)=>{
  console.log('Server: ' + e.data);
  this._sliderValue = e.data;
};

我不习惯于常规语法,我的眼睛还没有发现compile,min和target sdks的值不是整数而是STRINGS!因此,编译器理所当然地抱怨找不到能够与HAS​​H STRING'27'相匹配的版本的sdk。

因此解决方案是使sdk的版本为整数:     ...

await showDialog(
    context: context,
    barrierDismissible: false,
    builder: (context) {
      final _textKey = GlobalKey<FormState>();
      TextEditingController controller = TextEditingController();

      return AlertDialog(
        title: Text('Load conference'),
        content: Form(
          key: _textKey,
          child: TextFormField(
            controller: controller,
            validator: (str) {
              if (str.isEmpty) {
                return 'Empty url';
              } else if (str.length >= 4 && str.substring(0, 4).toLowerCase() != 'http') {
                return 'Url has to start from \'http\'';
              }
            },
          ),
          onChanged: () {
            if (controller.text.isNotEmpty) {
              _textKey.currentState.validate();
            }
          },
        ),

答案 8 :(得分:0)

在为我的android项目运行gradle build时,我遇到了同样的异常。

原因:java.lang.IllegalStateException:无法找到哈希字符串为“ android-27”的目标

此问题与适用于您的Android Studio的android SDK版本有关。 请从所附屏幕中找到此问题的解决方案。 enter image description here

答案 9 :(得分:0)

我对于android-29也有类似的问题。发生我的问题是因为当AS解压缩一个下载的SDK时,我已经停止了它。为解决此问题,请禁用gradle脱机模式,然后与gradle文件同步。您可能需要设置代理并启用它。