android studio 3.0:无法解决项目:fun:push。要求:项目:业务:日记

时间:2017-09-19 10:36:49

标签: android android-studio gradle

无法解析':business:diary@debug/compileClasspath': Could not resolve project :fun:push.

的依赖关系

无法解决项目:fun:push。 要求:     项目:业务:日记

  

无法找到项目的匹配配置:fun:push:         - 配置'jpushDebugApiElements':             - 必需的com.android.build.api.attributes.BuildTypeAttr'debug',找到兼容的值'debug'。             - 必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr'Aar',发现不兼容的值'Apk'。             - 找到com.android.build.gradle.internal.dependency.VariantAttr'jpushDebug'但不是必需的。             - 必需的地图'amap',但没有提供任何价值。             - 必需的org.gradle.api.attributes.Usage'java-api'并找到兼容的值'java-api'。             - 需要按'jpush'并找到兼容的值'jpush'。         - 配置'jpushDebugMetadataElements':             - 必需的com.android.build.api.attributes.BuildTypeAttr'debug',找到兼容的值'debug'。             - 必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr'Aar'并发现不兼容的值

我已阅读Migrate to Android Plugin for Gradle 3.0.0,但我添加了missingDimensionStrategy位置而非app模块build.gradle文件。创建了一个新文件config.gradle

project.ext {
setDefaultConfig = {
    extension ->
        extension.android {
            compileSdkVersion 25
            buildToolsVersion "25.0.3"
            defaultConfig {
                minSdkVersion 16
                targetSdkVersion 22
                versionCode 1
                versionName "1.0"
                multiDexEnabled true
                missingDimensionStrategy 'map', mapImplFlavor//add to here
                missingDimensionStrategy 'push', pushImplFlavor

                ndk {
                    abiFilters 'armeabi', 'x86','armeabi-v7a'
                }
                javaCompileOptions {
                    annotationProcessorOptions {
                        arguments = [moduleName: project.getName()]
                    }
                }
            }
        }
        println("extension : " + extension.android.defaultConfig.getMissingDimensionStrategies().toString())
}

此外,对于导入此文件的所有模块build.gradle

apply from: "${rootProject.rootDir}/config.gradle"
apply plugin: AutoBuild
android {
    project.ext.setDefaultConfig project  //import above code
    resourcePrefix "diary_" 
`````

最后,当我使用set AutoBuild插件自动应用com.android.applicationcom.android.library插件(即不直接在build.gradle文件中)和其他操作时。我同步或清理项目时会出现此问题,但构建成功。

我发现AutoBuild插件首先运行,然后是config.gradle,我还在AutoBuild插件中添加了inject missingDimensionStrategy,但它没有解决。请帮忙!

2 个答案:

答案 0 :(得分:0)

最后,我在模块build.gradle文件中添加了以下代码来解决此问题:

apply from: "${rootProject.rootDir}/config.gradle"

if (!gradle.startParameter.taskNames.toString().toUpperCase().contains('ASSEMBLE'))    {
    apply plugin: 'com.android.application'
} else {
    apply plugin: com.fec.buildgradle.AutoBuild 
}

android {
    project.ext.setDefaultConfig project
    resourcePrefix "diary_" 
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

 // in runtime following code is invalid just for sync and clean
    if (!gradle.startParameter.taskNames.toString().toUpperCase().contains('ASSEMBLE')) {
        sourceSets {
            main {
                manifest.srcFile "src/main/runAlone/AndroidManifest.xml"
            }
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project.ext.dependencies["constraint-layout"]
    annotationProcessor project.ext.dependencies["arouterCompiler"]
    api project(':baseLib:core')
}

答案 1 :(得分:0)

它给了我同样的错误,我尝试了这里提到的所有建议,但它没有用。然后我刚刚创建了另一个新项目,它运行良好。我知道这不是解决方案,而只是解决方法。