Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio Gradle项目同步失败,原因是ExtensibleDynamicObject_Android_Gradle_Android Gradle Plugin_Build.gradle_Android Studio 2.2 - Fatal编程技术网

Android Studio Gradle项目同步失败,原因是ExtensibleDynamicObject

Android Studio Gradle项目同步失败,原因是ExtensibleDynamicObject,android,gradle,android-gradle-plugin,build.gradle,android-studio-2.2,Android,Gradle,Android Gradle Plugin,Build.gradle,Android Studio 2.2,在Android Studio中,我得到一个错误: Gradle 'android' project refresh failed Error:Cause: org.gradle.api.internal.ExtensibleDynamicObject 建筑 当我应用实验插件时: 如以下文件所示: //mapbox gl native/platform/android/MapboxGLAndroidSDKTestApp/build.gradle 应用插件:“android s

在Android Studio中,我得到一个错误:

Gradle 'android' project refresh failed
    Error:Cause: org.gradle.api.internal.ExtensibleDynamicObject
建筑

当我应用实验插件时:

如以下文件所示:





//mapbox gl native/platform/android/MapboxGLAndroidSDKTestApp/build.gradle
应用插件:“android sdk管理器”
应用插件:“com.android.model.application”
应用插件:“checkstyle”
任务访问令牌{
def tokenFile=新文件(“MapboxGLAndroidSDKTestApp/src/main/res/values/developer config.xml”)
如果(!tokenFile.exists()){
字符串tokenFileContents=“\n”+
“\n”+
“+”$System.env.MAPBOX\u访问\u令牌“+”\n”+
""
if(tokenFileContents==null){
抛出新的InvalidUserDataException(“必须设置MAPBOX\u ACCESS\u令牌环境变量。”)
}
tokenFile.write(tokenFileContents)
}
}
模型{
gradle.项目评估{
preBuild.dependsOn('accessToken')
}
}
分机{
supportLibVersion='23.4.0'
}
模型{
安卓{
编译DK23版
buildToolsVersion“23.0.3”
默认配置{
applicationId“com.mapbox.mapboxsdk.testapp”
minSdkVersion.apiLevel 15
targetSdkVersion.apiLevel 23
版本代码9
版本名称“4.1.0”
//指定AndroidJUnitRunner作为默认测试工具运行程序
TestInstrumentRunner“android.support.test.runner.AndroidJUnitRunner”
}
编译选项{
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
包装选项{
排除“META-INF/LICENSE.txt”
排除“META-INF/NOTICE.txt”
排除“LICENSE.txt”
}
林特选项{
checkAllWarnings true
警告错误是真的
禁用“IconDensities”
禁用“InvalidPackage”
}
测试选项{
unitTests.returnDefaultValues=true
}
建筑类型{
调试{
//运行代码覆盖率报告
testCoverageEnabled=true
}
释放{
minifyEnabled false
添加(文件(“proguard rules.pro”))
}
}
}
}
依赖关系{
编译(项目(':mapboxglandroiddk')){
可传递=真
}
//支持库
编译“com.android.support:supportannotations:${supportLibVersion}”
编译“com.android.support:support-v4:${supportLibVersion}”
编译“com.android.support:appcompat-v7:${supportLibVersion}”
编译“com.android.support:design:${supportLibVersion}”
编译“com.android.support:recyclerview-v7:${supportLibVersion}”
////泄漏金丝雀
//调试编译'com.squareup.leakcanary:leakcanary android:1.4-beta1'
//releaseCompile'com.squareup.leakcanary:leakcanary android no op:1.4-beta1'
//Mapbox Android服务
编译('com.mapbox.mapboxsdk:mapboxandroid服务:1.1。0@aar') {
可传递=真
}
//测试依赖项
testCompile'junit:junit:4.12'
testCompile'org.mockito:mockito核心:1.10.19'
androidTestCompile“com.android.support:支持注释:${supportLibVersion}”
androidTestCompile'com.android.support.test:runner:0.4.1'
androidTestCompile'com.android.support.test:规则:0.4.1'
androidTestCompile'com.android.support.test.espresso:espresso核心:2.2.1'
androidTestCompile'com.jayway.android.robotium:robotium solo:5.5.4'
}
方格{
configFile项目.file(“../checks.xml”)
真相大白
}
模型{
android.applicationVariants.all{variant->
def name=variant.buildType.name
def checkstyle=project.tasks.create“checkstyle${name.capitalize()}”,checkstyle
checkstyle.dependsOn variant.javaCompile
checkstyle.source variant.javaCompile.source
checkstyle.classpath=project.fileTree(variant.javaCompile.destinationDir)
checkstyle.exclude('**/BuildConfig.java')
checkstyle.exclude(“**/R.java”)
project.tasks.getByName(“check”).dependsOn checkstyle
}
}

我已经阅读了很多关于这个错误的文章,并遵循了给出的建议。这些建议通常建议添加赋值运算符“=”或“+=”,而其他建议则建议删除它们。不管怎样,到目前为止还没有任何建议修复了这个错误。其他人对修复此错误有什么建议吗


ty

你不应该使用:
buildConfigFields.with{create(){type“String”name“MAPBOX\u EVENTS\u USER\u AGENT\u BASE”value“myvalue”}
谷歌找到我,他们说他们放弃了实验性的gradle插件。如果是真的,他们应该标记文档,但我不认为他们会,直到他们有一个替换。克马克?等等,说真的??天哪,我们有太多的代码依赖于Gradle实验插件!你不应该使用:
buildConfigFields.with{create(){type“String”name“MAPBOX\u EVENTS\u USER\u AGENT\u BASE”value“myvalue”}
Google回复我,他们说他们放弃了实验性的gradle插件。如果是真的,他们应该标记文档,但我不认为他们会,直到他们有一个替换。克马克?等等,说真的??天哪,我们有太多的代码依赖于Gradle实验插件!
#mapbox-gl-native/platform/android/gradle/wrapper/gradle-wrapper.properties
#Sat Jul 09 17:24:25 PDT 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
// mapbox-gl-native/platform/android/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
    dependencies {
        // classpath 'com.android.tools.build:gradle:2.1.2'
        classpath 'com.android.tools.build:gradle-experimental:0.7.0'
        classpath 'com.github.JakeWharton:sdk-manager-plugin:220bf7a88a7072df3ed16dc8466fb144f2817070'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "http://oss.sonatype.org/content/repositories/snapshots/" }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.10'
}
// mapbox-gl-native/platform/android/MapboxGLAndroidSDK/build.gradle

apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.model.library'
apply plugin: 'checkstyle'
apply plugin: 'maven'
apply plugin: 'signing'

allprojects {
    group project.GROUP
    version project.VERSION_NAME

    repositories {
        mavenCentral()
    }
}

repositories {
    mavenCentral()
}

ext {
    supportLibVersion = '23.4.0'
}

dependencies {
    compile "com.android.support:support-annotations:${supportLibVersion}"
    compile "com.android.support:support-v4:${supportLibVersion}"
    compile "com.android.support:design:${supportLibVersion}"
    compile 'com.squareup.okhttp3:okhttp:3.3.0'
    compile 'com.mapzen.android:lost:1.1.0'
}

model {
    android {
        compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION

        defaultConfig {
            minSdkVersion Integer.parseInt(project.ANDROID_MIN_SDK)
            targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        }

        sourceSets {
            main.res.srcDirs += 'src/main/res-public'
        }

        repositories {
            mavenCentral()
        }

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }

        lintOptions {
            checkAllWarnings true
            warningsAsErrors true
        }

        buildTypes {
            debug {
                jniDebuggable true
                buildConfigField "String", "MAPBOX_EVENTS_USER_AGENT_BASE", new StringBuilder().append("\"").append("MapboxEventsAndroid/").append(project.VERSION_NAME).append("\"").toString()
            }

            release {
                jniDebuggable false
                buildConfigField "String", "MAPBOX_EVENTS_USER_AGENT_BASE", new StringBuilder().append("\"").append("MapboxEventsAndroid/").append(project.VERSION_NAME).append("\"").toString()
                consumerProguardFiles 'proguard-rules.pro'
            }
        }
    }
}

configurations {
    all*.exclude group: 'commons-logging', module: 'commons-logging'
    all*.exclude group: 'commons-collections', module: 'commons-collections'
}

model {
    android.libraryVariants.all { variant ->
        def name = variant.name
        task "javadoc$name"(type: Javadoc) {
            description = "Generates javadoc for build $name"
            failOnError = false
            destinationDir = new File(destinationDir, variant.baseName)
            source = files(variant.javaCompile.source)
            classpath = files(variant.javaCompile.classpath.files) + files(android.bootClasspath)
            exclude '**/R.java', '**/BuildConfig.java', 'com/almeros/**'
            options.windowTitle("Mapbox Android SDK $VERSION_NAME Reference")
            options.docTitle("Mapbox Android SDK $VERSION_NAME")
            options.header("Mapbox Android SDK $VERSION_NAME Reference")
            options.bottom("© 2015–2016 Mapbox. All rights reserved.")
            options.links("http://docs.oracle.com/javase/7/docs/api/")
            options.linksOffline("http://d.android.com/reference/", "$System.env.ANDROID_HOME/docs/reference")
            options.overview("src/main/java/overview.html")
            options.group("Mapbox Android SDK", "com.mapbox.*")
            options.group("Third Party Libraries", "com.almeros.*")
            // TODO exclude generated R, BuildConfig, com.almeros.*
        }
    }
}

checkstyle {
    configFile project.file('../checks.xml')
    showViolations true
}

/*
task cleanJNIBuilds {
    def jniLibsDir = new File("MapboxGLAndroidSDK/src/main/jniLibs")
    delete jniLibsDir.absolutePath
}
*/

model {
    android.libraryVariants.all { variant ->
        def name = variant.buildType.name
        def checkstyle = project.tasks.create "checkstyle${name.capitalize()}", Checkstyle
        checkstyle.dependsOn variant.javaCompile
        checkstyle.source variant.javaCompile.source
        checkstyle.classpath = project.fileTree(variant.javaCompile.destinationDir)
        checkstyle.exclude('**/BuildConfig.java')
        checkstyle.exclude('**/R.java')
        checkstyle.exclude('**/com/almeros/android/multitouch/**')
        project.tasks.getByName("check").dependsOn checkstyle
    }
}

model {
    // From https://raw.github.com/mcxiaoke/gradle-mvn-push/master/jar.gradle
    android.libraryVariants.all { variant ->
        def jarTask = project.tasks.create(name: "jar${variant.name.capitalize()}", type: Jar) {
            from variant.javaCompile.destinationDir
            exclude "**/R.class"
            exclude "**/BuildConfig.class"
        }
        jarTask.dependsOn variant.javaCompile
        artifacts.add('archives', jarTask);
    }
}

// From https://raw.github.com/mcxiaoke/gradle-mvn-push/master/gradle-mvn-push.gradle
def isReleaseBuild() {
    return VERSION_NAME.contains("SNAPSHOT") == false
}

def getReleaseRepositoryUrl() {
    return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL :
            "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
}

def getSnapshotRepositoryUrl() {
    return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL :
            "https://oss.sonatype.org/content/repositories/snapshots/"
}

def getRepositoryUsername() {
    return hasProperty('USERNAME') ? USERNAME :
            (hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : "")
}

def getRepositoryPassword() {
    return hasProperty('PASSWORD') ? PASSWORD :
            (hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "")
}


task apklib(type: Zip) {
    appendix = extension = 'apklib'

    from 'AndroidManifest.xml'
    into('res') {
        from 'res'
    }
    into('src') {
        from 'src'
    }
}

artifacts {
    archives apklib
}

afterEvaluate { project ->
    uploadArchives {
        repositories {
            mavenDeployer {
                beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

                pom.groupId = GROUP
                pom.artifactId = POM_ARTIFACT_ID
                pom.version = VERSION_NAME

                repository(url: getReleaseRepositoryUrl()) {
                    authentication(userName: getRepositoryUsername(),
                            password: getRepositoryPassword())
                }
                snapshotRepository(url: getSnapshotRepositoryUrl()) {
                    authentication(userName: getRepositoryUsername(),
                            password: getRepositoryPassword())
                }

/*
                // Leaving out as artifact was incorrectly named when found
                addFilter('aar') { artifact, file ->
                    artifact.name == archivesBaseName
                }
                addFilter('apklib') { artifact, file ->
                    artifact.name == archivesBaseName + '-apklib'
                }
*/

                pom.project {
                    name POM_NAME
                    packaging POM_PACKAGING
                    description POM_DESCRIPTION
                    url POM_URL

                    scm {
                        url POM_SCM_URL
                        connection POM_SCM_CONNECTION
                        developerConnection POM_SCM_DEV_CONNECTION
                    }

                    licenses {
                        license {
                            name POM_LICENCE_NAME
                            url POM_LICENCE_URL
                            distribution POM_LICENCE_DIST
                        }
                    }

                    developers {
                        developer {
                            id POM_DEVELOPER_ID
                            name POM_DEVELOPER_NAME
                        }
                    }
                }
            }
        }
    }

    signing {
        required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
        sign configurations.archives
    }

    model {
        task androidJavadocs(type: Javadoc) {
            source = android.sourceSets.main.java.sourceFiles
            classpath = files(android.bootClasspath)
        }
    }

    task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
        classifier = 'javadoc'
        from androidJavadocs.destinationDir
    }

    model {
        task androidSourcesJar(type: Jar) {
            classifier = 'sources'
            from android.sourceSets.main.java.sourceFiles
        }
    }

    artifacts {
        archives androidSourcesJar
        archives androidJavadocsJar
    }
}

task makeClean(type: Exec) {
    workingDir '../../'
    commandLine 'make', 'clean'
}

task makeAndroid(type: Exec) {
    workingDir '../../'
    commandLine 'make', 'android'
}

task makeAndroidAll(type: Exec) {
    workingDir '../../'
    commandLine 'make', 'apackage'
}
// mapbox-gl-native/platform/android/MapboxGLAndroidSDKTestApp/build.gradle
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.model.application'
apply plugin: 'checkstyle'

task accessToken {
    def tokenFile = new File("MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml")
    if (!tokenFile.exists()) {
        String tokenFileContents = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
                "<resources>\n" +
                "    <string name=\"mapbox_access_token\">" + "$System.env.MAPBOX_ACCESS_TOKEN" + "</string>\n" +
                "</resources>"

        if (tokenFileContents == null) {
            throw new InvalidUserDataException("You must set the MAPBOX_ACCESS_TOKEN environment variable.")
        }
        tokenFile.write(tokenFileContents)
    }
}

model {
    gradle.projectsEvaluated {
        preBuild.dependsOn('accessToken')
    }
}

ext {
    supportLibVersion = '23.4.0'
}

model {
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"

        defaultConfig {
            applicationId "com.mapbox.mapboxsdk.testapp"
            minSdkVersion.apiLevel 15
            targetSdkVersion.apiLevel 23
            versionCode 9
            versionName "4.1.0"

            // Specify AndroidJUnitRunner as the default test instrumentation runner
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }

        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }

        packagingOptions {
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
            exclude 'LICENSE.txt'
        }

        lintOptions {
            checkAllWarnings true
            warningsAsErrors true
            disable 'IconDensities'
            disable 'InvalidPackage'
        }

        testOptions {
            unitTests.returnDefaultValues = true
        }

        buildTypes {
            debug {
                // run code coverage reports
                testCoverageEnabled = true
            }
            release {
                minifyEnabled false
                proguardFiles.add(file("proguard-rules.pro"))
            }
        }
    }
}

dependencies {
    compile(project(':MapboxGLAndroidSDK')) {
        transitive = true
    }

    // Support libraries
    compile "com.android.support:support-annotations:${supportLibVersion}"
    compile "com.android.support:support-v4:${supportLibVersion}"
    compile "com.android.support:appcompat-v7:${supportLibVersion}"
    compile "com.android.support:design:${supportLibVersion}"
    compile "com.android.support:recyclerview-v7:${supportLibVersion}"

//    // Leak Canary
//    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta1'
//    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'

    // Mapbox Android Services
    compile('com.mapbox.mapboxsdk:mapbox-android-services:1.1.0@aar') {
        transitive = true
    }

    // Testing dependencies
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'
    androidTestCompile "com.android.support:support-annotations:${supportLibVersion}"
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    androidTestCompile 'com.android.support.test:rules:0.4.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.5.4'
}

checkstyle {
    configFile project.file('../checks.xml')
    showViolations true
}

model {
    android.applicationVariants.all { variant ->
        def name = variant.buildType.name
        def checkstyle = project.tasks.create "checkstyle${name.capitalize()}", Checkstyle
        checkstyle.dependsOn variant.javaCompile
        checkstyle.source variant.javaCompile.source
        checkstyle.classpath = project.fileTree(variant.javaCompile.destinationDir)
        checkstyle.exclude('**/BuildConfig.java')
        checkstyle.exclude('**/R.java')
        project.tasks.getByName("check").dependsOn checkstyle
    }
}