错误:无法使用哈希字符串找到目标' android-28'

时间:2018-05-18 23:32:27

标签: android android-studio synchronization

当我在build.gradle(Project:Allo)中同步我的项目时,我看到了这个错误

  

无法在哈希字符串' android-28'中找到目标:C:\ Users \ hacker \ AppData \ Local \ Android \ Sdk

配置:

apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 28
defaultConfig {
    applicationId "com.example.android.allo"
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0 rc2'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'com.google.firebase:firebase-core:15.0.2'
implementation 'com.google.firebase:firebase-messaging:15.0.2'
implementation 'com.android.support:design:28.0.0 rc2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

and this is the image

3 个答案:

答案 0 :(得分:8)

阅读Set Up the Android P SDK

android {
compileSdkVersion 'android-P'

defaultConfig {
    targetSdkVersion 'P'
}
  

为了获得Android P Preview SDK的最佳开发体验,我们   建议您安装最新的Android Studio 3.2 canary。

您应按如下方式安装Android P Preview SDK:

  • 点击工具> SDK Manager

  • 在SDK平台标签中,选择 Android P预览

  • 在SDK工具标签中,选择 Android SDK Build-Tools 28-rc2 (或 更高)。

  • 单击“确定”开始安装。

答案 1 :(得分:3)

替换这两个依赖项

  

实现'com.android.support:appcompat-v7:28.0.0 rc2'

     

实现'com.android.support:design:28.0.0 rc2'

与这些

  

实现'com.android.support:design:28.0.0-rc01'

     

实现'com.android.support:appcompat-v7:28.0.0-rc01'

答案 2 :(得分:1)

我收到错误消息“无法使用哈希字符串'android-28'查找目标”,以上解决方案均无法解决我的问题。

这是造成我的问题的原因:

在gradle.build项目中,我添加了一个用户定义的扩展键值,如下所示:

ext {
    ANDROID_COMPILE_SDK_VERSION=28
}

然后在gradle.build模块中,我这样引用了该值:

android {
   compileSdkVersion rootProject.ext.ANDROID_COMPILE_SDK_VERSION
   ...

这就是导致错误的原因!!我为解决此问题所做的就是这样编写代码:

android {
  compileSdkVersion Integer.valueOf(rootProject.ext.ANDROID_COMPILE_SDK_VERSION)

换句话说,compileSdkVerion需要一个整数,而不是字符串。 gradle脚本中的minSdkVerion,targetSdkVersion和versionCode同样如此。

我不知道上述张贴者是否遇到了这个问题,但是至少可以通过一种方式出现该错误消息。顺便说一下,我可以使用支持库28.0.0