简体   繁体   English

Gradle无法解析项目:linkedin-sdk

[英]Gradle could not resolve project :linkedin-sdk

I'm using Androis Studio 3.0 Canary 4. In my project i have the Linkedin-sdk, and it works. 我正在使用Androis Studio 3.0 Canary 4.在我的项目中,我有Linkedin-sdk,它的工作原理。 I can use it. 我可以用它。 The only problem is that i recive this message when i search to build Gradle. 唯一的问题是,当我搜索构建Gradle时,我会收到此消息。 在此输入图像描述

And because i'cant build it i cannot use the designe editor and the preview. 因为我不能构建它我不能使用设计编辑器和预览。

Here is my build.gradle project: 这是我的build.gradle项目:

buildscript {
  repositories {
    jcenter()
    maven { url 'https://maven.google.com' }
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-alpha4'
    classpath 'com.google.gms:google-services:3.0.0'
  }
}

allprojects {
   repositories {
       jcenter()
       maven {
           url 'https://maven.google.com'
       }
   }
}

task clean(type: Delete) {
     delete rootProject.buildDir
}

Build.Gradle Module:App Build.Gradle模块:App

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"
    defaultConfig {
           applicationId "com.cving_team.cving"
           minSdkVersion 19
           targetSdkVersion 26
           versionCode 1
           versionName "1.0"
           testInstrumentationRunner 
           "android.support.test.runner.AndroidJUnitRunner"
}
signingConfigs {...}
buildTypes {
    sdkTest {
        signingConfig signingConfigs.sdkTest
        debuggable true

    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
        'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
}
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-
        core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

compile project(':retrofit-2.1.0')
compile project(':linkedin-sdk')
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:appcompat-v7:26.0.0-beta2'
compile 'com.android.support:customtabs:26.0.0-beta2'
compile 'com.android.support:design:26.0.0-beta2'
compile 'com.android.support:cardview-v7:26.0.0-beta2'
compile 'com.android.support:recyclerview-v7:26.0.0-beta2'
compile 'com.facebook.android:facebook-android-sdk:4.24.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:retrofit:2.2.0'
compile 'com.mutualmobile.android:cardstack:0.5.2'
compile 'com.google.android.gms:play-services-location:11.0.1'
compile 'com.google.android.gms:play-services-places:11.0.1'
compile 'com.squareup.okhttp3:okhttp:3.7.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
compile 'eu.davidea:flexible-adapter:5.0.0-rc1'
compile 'se.emilsjolander:StickyScrollViewItems:1.1.0'
compile 'com.google.firebase:firebase-core:11.0.1'
compile 'com.google.firebase:firebase-messaging:11.0.1'
testCompile 'junit:junit:4.12'
}

apply plugin: 'com.google.gms.google-services'

Linkedin-sdk is in settings.gradle to. Linkedin-sdk在settings.gradle中。

include ':app', ':retrofit-2.1.0', ':fabby-sdk-jni', ':linkedin-sdk'

What could be the problem? 可能是什么问题呢?

UPDATE UPDATE

I have launched this command from terminal: gradlew tasks, and recive this error: 我从terminal:gradlew tasks启动了这个命令,并发现了这个错误:

> Configure project :app
Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
Configuration 'androidTestCompile' in project ':app' is deprecated. Use 'androidTestImplementation' instead.
Configuration 'testCompile' in project ':app' is deprecated. Use 'testImplementation' instead.
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)

> Configure project :fabby-sdk-jni
Configuration 'compile' in project ':fabby-sdk-jni' is deprecated. Use 'implementation' instead.
Configuration 'androidTestCompile' in project ':fabby-sdk-jni' is deprecated. Use 'androidTestImplementation' instead.
Configuration 'testCompile' in project ':fabby-sdk-jni' is deprecated. Use 'testImplementation' instead.

> Configure project :linkedin-sdk
Configuration 'compile' in project ':linkedin-sdk' is deprecated. Use 'implementation' instead.
Configuration 'androidTestCompile' in project ':linkedin-sdk' is deprecated. Use 'androidTestImplementation' instead.


FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:testSdkTestUnitTest'.
> Could not resolve all task dependencies for configuration ':app:sdkTestUnitTestRuntimeClasspath'.
   > Could not resolve project :linkedin-sdk.
     Required by:
         project :app
      > Unable to find a matching configuration of project :linkedin-sdk:
          - Configuration 'debugApiElements':
              - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'.
              - Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=sdkTest}' and found incompatible value 'BuildTypeAttr{name=debug}'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=debug}' but wasn't required.
              - Required org.gradle.api.attributes.Usage 'for runtime' and found incompatible value 'for compile'.
          - Configuration 'debugRuntimeElements':
              - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'.
              - Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=sdkTest}' and found incompatible value 'BuildTypeAttr{name=debug}'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=debug}' but wasn't required.
              - Required org.gradle.api.attributes.Usage 'for runtime' and found compatible value 'for runtime'.
          - Configuration 'releaseApiElements':
              - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'.
              - Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=sdkTest}' and found incompatible value 'BuildTypeAttr{name=release}'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=release}' but wasn't required.
              - Required org.gradle.api.attributes.Usage 'for runtime' and found incompatible value 'for compile'.
          - Configuration 'releaseRuntimeElements':
              - Required com.android.build.gradle.internal.dependency.AndroidTypeAttr 'AndroidTypeAttr{name=Aar}' and found compatible value 'AndroidTypeAttr{name=Aar}'.
              - Required com.android.build.gradle.internal.dependency.BuildTypeAttr 'BuildTypeAttr{name=sdkTest}' and found incompatible value 'BuildTypeAttr{name=release}'.
              - Found com.android.build.gradle.internal.dependency.VariantAttr 'VariantAttr{name=release}' but wasn't required.
              - Required org.gradle.api.attributes.Usage 'for runtime' and found compatible value 'for runtime'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

SOLVED 解决了

Just chenage: 只是chenage:

compile project(':linkedin-sdk')

to

compile project(path: ':linkedin-sdk', configuration: 'default')

Since you are using the new android plugin 3.x you have to follow the migration guidelines : 由于您使用的是新的Android插件3.x,因此您必须遵循迁移准则

Error:Failed to resolve: Could not resolve project :linkedin-sdk. 错误:无法解决:无法解析项目:linkedin-sdk。

To resolve this error, you need to specify which build type from "mylibrary" (linkedin-sdk in your case) the Android plugin should match to the app's "staging" build type. 要解决此错误,您需要指定Android插件应与应用程序的“staging”构建类型匹配的“mylibrary”(在您的情况下为linkedin-sdk)中的构建类型。 You can do this with the buildTypeMatching property in the app's build.gradle file, as shown below: 您可以使用app的build.gradle文件中的buildTypeMatching属性执行此操作,如下所示:

android {
    ...
    // Tells the Android plugin to use a library's 'debug' build type
    // when a 'staging' build type is not available. You can include
    // additional build types, and the plugin matches 'staging' to the
    // first build type it finds from the one's you specify. That is,
    // if 'mylibrary' doesn't include a 'debug' build type either, the
    // plugin matches 'staging' with the producer's 'release' build type.
    buildTypeMatching 'staging', 'debug', 'release'
}

Edit : buildTypeMatching was replaced by matchingFallbacks . 编辑buildTypeMatching matchingFallbacks 取代
You can find more info about the variant-aware dependency management here and here . 您可以 此处找到有关变体感知依赖关系管理的更多信息。

android {
    buildTypes {
        debug {}
        release {}
        staging {
            // Specifies a sorted list of fallback build types that the
            // plugin should try to use when a dependency does not include a
            // "staging" build type. You may specify as many fallbacks as you
            // like, and the plugin selects the first build type that's
            // available in the dependency.
            matchingFallbacks = ['debug', 'qa', 'release']
        }
    }
}

Then 然后

Unable to find a matching configuration of project :linkedin-sdk: 无法找到项目的匹配配置:linkedin-sdk:

You can use 您可以使用

compile project(path: ':linkedin-sdk', configuration: 'default')

but you can simply use the following to take advantage of variant-aware dependency resolution. 但您可以简单地使用以下内容来利用变体感知依赖项解析。 .

implementation project(':linkedin-sdk')

You can learn more about the 'implementation' configuration in the section about new dependency configurations . 您可以在有关新依赖关系configurations的部分中了解有关'implementation'配置的更多信息。

I have solved my problem. 我已经解决了我的问题。 In build.gradle(Module app) buildTypes must have this structure: 在build.gradle(模块应用程序)中, buildTypes必须具有以下结构:

buildTypes {
    debug {}
    releaseApp {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release
    }
    releaseSdk {
        signingConfig signingConfigs.sdkTest
        debuggable true
    }
}

and in build.gradle(Module linkedinn-sdk) buildTypes must have same structure. 在build.gradle(Module linkedinn-sdk)中,buildTypes必须具有相同的结构。 So the new code is: 所以新代码是:

buildTypes {
    debug {}
    releaseApp  {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    releaseSdk {}
}

I got similar error that I was able to resolve: 我得到了类似的错误,我能够解决:

21:13   Gradle sync failed: Cannot choose between the following configurations of project :sTLivenessLibrary:
        - debugApiElements
        - debugRuntimeElements
        - releaseApiElements
        - releaseRuntimeElements
        All of them match the consumer attributes:
        - Configuration 'debugApiElements':
        - Found com.android.build.api.attributes.BuildTypeAttr 'debug' but wasn't required.
        - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required.
        - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.
        - Found org.gradle.api.attributes.Usage 'for compile' but wasn't required.
        - Configuration 'debugRuntimeElements':
        - Found com.android.build.api.attributes.BuildTypeAttr 'debug' but wasn't required.
        - Found com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar' but wasn't required.
        - Found com.android.build.gradle.internal.dependency.VariantAttr 'debug' but wasn't required.

I fixed this by changing the compile config: 我通过更改编译配置修复此问题:

compile project(':linkedin-sdk')

to

compile project(path: ':linkedin-sdk', configuration: 'default').

I also faced this issue when updated to android studio 3.0 更新到android studio 3.0时我也遇到了这个问题

This was my build types block in app gralde file 这是app gralde文件中的构建类型块

 buildTypes {
    staging {
        buildConfigField 'String', 'HOST', '"http://compute.amazonaws.com/"'
        buildConfigField 'String', 'REGION_CODE', '"1"'
        debuggable true
        signingConfig signingConfigs.debug
    }
    QA {
        buildConfigField 'String', 'HOST', '"com.amazo/"'
        buildConfigField 'String', 'REGION_CODE', '"92"'
        debuggable true
        signingConfig signingConfigs.debug
    }
    notificationTest {
        buildConfigField 'String', 'HOST', '"http://a6a"'
        buildConfigField 'String', 'REGION_CODE', '"92"'
        debuggable true
        signingConfig signingConfigs.debug
    }
}

and this was my project dependencies 这是我的项目依赖项

compile project(':slideDateTimePicker')
compile project(':scatter')

I opened scatter build.gradle and slideDateTimePicker build.gradle files and replaced android block with this one. 我打开了scatter build.gradle和slideDateTimePicker build.gradle文件,用这个替换了android块。

  buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    QA {}
    notificationTest{}
    releaseApp {}
    releaseSdk {}
    staging{}
}

Yes, it is 是的

implementation project(path: ':linkedin-sdk', configuration: 'default') works implementation project(path: ':linkedin-sdk', configuration: 'default')有效

And you can choose flavour type in left tab Build Variants 您可以在左侧选项卡Build Variants选择风味类型

You need to import the LinkedIn SDK as a module in your Android Studio project. 您需要将LinkedIn SDK作为模块导入Android Studio项目中。 To do this 去做这个

  1. Extract the project from the ZIP file which you downloaded from LinkedIn. 从您从LinkedIn下载的ZIP文件中提取项目。
  2. In the Android Studio menu, navigate to Android File -> New -> Import module and then select the folder which you created in step 1. 在Android Studio菜单中,导航到Android文件 - >新建 - >导入模块,然后选择您在步骤1中创建的文件夹。

Source: https://stackoverflow.com/a/38998826/1440565 资料来源: https//stackoverflow.com/a/38998826/1440565

Downgrade Gradle to a stable 3.* version (3.5, as of this writing) and the Gradle tools to a stable 2.* version (currently 2.3.3) for the time being. 将Gradle降级为稳定的3. *版本(撰写本文时为3.5),将Gradle工具降级为稳定的2. *版本(目前为2.3.3)。 It appears to be a bug with the current preview versions. 它似乎是当前预览版本的错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM