无法解析依赖Android Studio 3.0

时间:2017-10-29 14:58:57

标签: android facebook-android-sdk android-studio-3.0

拥有更新的 Android Studio 3.0 是件好事。但是我遇到了 Android Studio 3.0 的问题,我刚刚在 Android Studio 3.0 中创建了一个新项目。然后我收到了一些错误

我通过将 dependencies 更改为最新版本并解决了问题来解决这些问题。

但是,当我添加{{1>} facebook account-kit sdk dependency

我收到以下错误 - :

  

错误:无法解析':app @ debug / compileClasspath'的依赖关系:   无法解决com.facebook.android:account-kit-sdk:4.+。打开   文件
显示详细信息

的build.gradle(APP)

com.facebook.android:account-kit-sdk:4.+

注意 - :

  • 我正在关注 Facebook Developers Docs

  • 我尝试过将apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 26 defaultConfig { applicationId "ultimate.devil.logintest" minSdkVersion 15 targetSdkVersion 26 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"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.facebook.android:account-kit-sdk:4.+' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' } 更改为compile

  • 我还尝试通过Google搜索最新版 Facebook Account-Kit SDK

    <尝试将implementation更改为com.facebook.android:account-kit-sdk:4.+com.facebook.android:account-kit-sdk:4.11.0 / LI>
  • 我也尝试过StackOverFlow Answers同样的问题。但没有人帮助我

截图

enter image description here

11 个答案:

答案 0 :(得分:71)

经过一番研究后,我解决了这个问题。

第1步 -

我在设置中停用 Gradle离线工作

  

档案&gt;设置&gt;构建,执行,部署&gt; Gradle&gt;取消选中离线工作

enter image description here

第2步 -

然后,我刚刚将 compile 'com.facebook.android:account-kit-sdk:4.+' 更改为 api 'com.facebook.android:account-kit-sdk:4.+'

我不确切知道它为什么会起作用。我在文档中看到 api Reference

现在有效:)

编辑 -

现在,我可以同时使用apiimplementation,一切正常。

谢谢,

答案 1 :(得分:5)

在无法编译的matchingFallbacks = ['release', 'debug']中添加buildType

E.g。我的releaseStaging错误:

buildTypes {
    debug {
        buildConfigField "String", "CODEPUSH_KEY", '""'
    }
    releaseStaging {
        buildConfigField "String", "CODEPUSH_KEY", 'myKey'
        signingConfig signingConfigs.release
        matchingFallbacks = ['release', 'debug']
    }
    release {
        buildConfigField "String", "CODEPUSH_KEY", 'myKey'
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        signingConfig signingConfigs.release
    }
}

答案 2 :(得分:3)

我前天面临类似的错误。刚刚解决了它here

此外,正如最新的gradle版本notes中所述,您应该避免使用版本号为的动态依赖项:

com.facebook.android:account-kit-sdk:4.+

尝试将其替换为适当的版本号4.0.0或更新版本。希望它能解决问题。

答案 3 :(得分:2)

短篇小说:

降级为 Gradle 4.2.1

长篇故事:

我根据答案here使用Gradle版本4.3,因为该问题是我的错误。做完这个改变后,我开始遇到你的问题。

降级到版本4.2.1,您的问题就消失了。现在我必须回到上一个问题。

我在使用Android Studio 3.0gradle plugin 3.0.0

编译项目时也有problem

如果我有其他问题,我会在此处发布更新

答案 4 :(得分:2)

可以在Maven Central上找到所有Facebook Account Kit SDK构建工件:

// https://mvnrepository.com/artifact/com.facebook.android/account-kit-sdk
api 'com.facebook.android:account-kit-sdk:4.35.0'

,要添加的相应存储库为:

repositories {
    mavenCentral()
}

假定未处于offline模式。

答案 5 :(得分:0)

有同样的问题。在尝试了一切之后,终于意识到它是不允许同步依赖的网络。尝试使用热点并且有效。

答案 6 :(得分:0)

我通过清除此目录解决了这个问题:

c:\Users\User name\\.gradle\caches\

答案 7 :(得分:0)

我遇到了同样的问题,我通过将apply plugin: 'com.android.application'更改为 apply plugin: 'com.android.library'

解决了这个问题

关于我的问题,它与你的有点不同。我有第二个模块与android库和Android开发人员页面&#34;将应用程序模块转换为库模块&#34; 。我的猜测是它与管理架构内部的Manifest文件有关,因此Android会知道Manifest主文件的位置。

关于apiimplementation,可以找到答案here

  

api配置应该用于声明由库API导出的依赖项,而实现配置应该用于声明组件内部的依赖项。

答案 8 :(得分:0)

我遇到了同样的问题,并且确实做到了这样:

implementation project(path: 'com.facebook.android:account-kit-sdk:4.+', configuration: 'default')

答案 9 :(得分:0)

降级这两个文件可以解决问题

项目的build.graddle至3.1.4 渐变包装属性到4.4

答案 10 :(得分:0)

看到一个旧项目。它显示“构建”成功。所以我检查了 build.gradle 文件。比较这两个项目,我看到依赖项版本号发生了变化。然后我只是从旧的项目中复制了版本号并且它起作用了。在 android{} 中还有一个 BuildUsing 左右,我将它从我的新项目中删除(它不在我的旧项目中)。我认为这是因为 gradle 更新不完整或损坏。