簡體   English   中英

Gradle構建測試“無法規范化……”,用於在Android Studio中進行Robolectric測試

[英]Gradle Build Test “Could not normalize…”, for doing Robolectric tests in Android Studio

在Windows 8.1上運行gradlew test --stacktrace。 我收到此錯誤:

無法規范文件'C:\\ Users \\ Aleesa \\ Documents \\ SDK \\ platforms \\ android-18 \\ android.jar; C:\\ Users \\ Aleesa \\ Documents \\ SDK \\ add-ons \\ addon-google_apis-google-18的路徑\\ libs \\ usb.jar; C:\\ Users \\ Aleesa \\ Documents \\ SDK \\ add-ons \\ addon-google_apis-google-18 \\ libs \\ effects.jar; C:\\ Users \\ Aleesa \\ Documents \\ SDK \\ add-ons \\ addon-google_apis-google-18 \\ libs \\ maps.jar”。

我知道它是因為沒有所謂的文件。 我需要能夠split(“;”),但是我不確定如何在DST中進行。 這是我的模塊的build.gradle:

buildscript {
    repositories {
        mavenCentral()
        maven { url 'http://download.crashlytics.com/maven' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:+'
        classpath 'com.jakewharton.hugo:hugo-plugin:1.1.0'
        classpath 'org.robolectric:robolectric-gradle-plugin:0.14.+'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'android-apt'
apply plugin: 'crashlytics'
apply plugin: 'hugo'
apply plugin: 'robolectric'

repositories {
    maven { url 'http://download.crashlytics.com/maven' }
}

android {
    compileSdkVersion "Google Inc.:Google APIs:18"
    buildToolsVersion "20.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 18
    }

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

    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
    }

    lintOptions {
        abortOnError false
        disable 'InvalidPackage'
    }

    sourceSets {
        androidTest {
            setRoot('src/androidTest')
        }
    }
}

dependencies {
    compile project(':Dependencies')
    compile 'com.jakewharton:butterknife:5.1.2'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.viewpagerindicator:library:2.4.1@aar'

    compile project(':ALIBShowcaseViewLegacy')
    compile project(':ALIBDateTimePicker')
    compile project(':ALIBFancyCoverFlow')
    compile project(':ALIBFlowLayout')
    compile project(':ALIBParalloidViews')
    compile project(':ALIBSlidingUpPanel')
    compile project(':ALIBTiltEffect')
    compile project(':ALIBFloatLabel')

    compile files('libs/android-async-http-1.4.5.jar')
    compile files('libs/android-viewbadger.jar')
    compile files('libs/gcm.jar')
    compile files('libs/PayPalAndroidSDK-2.8.2.jar')

    compile 'org.scribe:scribe:1.3.5'
    compile 'com.squareup.picasso:picasso:2.3.4'
    compile 'commons-io:commons-io:2.4'
    compile 'org.apache.commons:commons-collections4:4.0'
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'com.google.android.gms:play-services:5.0.89'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'joda-time:joda-time:2.3'
    compile 'com.crashlytics.android:crashlytics:1.+'
    compile 'fr.avianey:facebook-android-api:+@aar'
    compile 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar'
    compile 'com.nhaarman.listviewanimations:lib-manipulation:3.1.0@aar'
    compile 'com.nhaarman.listviewanimations:lib-core-slh:3.1.0@aar'
    compile 'de.greenrobot:eventbus:2.4.0'

    //We dont use this
    compile 'com.github.nirhart:parallaxscroll:1.0'
    compile 'se.emilsjolander:stickylistheaders:2.5.2+'
    //Auto parcel shit
    compile 'com.github.frankiesardo:auto-parcel:+'
    apt 'com.github.frankiesardo:auto-parcel-processor:+'

    //Genymotion
    androidTestCompile 'com.genymotion.api:genymotion-api:1.0.0'

    //Test shit
    androidTestCompile 'org.hamcrest:hamcrest-integration:1.1'
    androidTestCompile 'org.hamcrest:hamcrest-core:1.1'
    androidTestCompile 'org.hamcrest:hamcrest-library:1.1'

    androidTestCompile('junit:junit:4.+') {
        exclude module: 'hamcrest-core'
    }
    androidTestCompile('org.robolectric:robolectric:2.3') {
        exclude module: 'classworlds'
        exclude module: 'commons-logging'
        exclude module: 'httpclient'
        exclude module: 'maven-artifact'
        exclude module: 'maven-artifact-manager'
        exclude module: 'maven-error-diagnostics'
        exclude module: 'maven-model'
        exclude module: 'maven-project'
        exclude module: 'maven-settings'
        exclude module: 'plexus-container-default'
        exclude module: 'plexus-interpolation'
        exclude module: 'plexus-utils'
        exclude module: 'support-v4'
        exclude module: 'wagon-file'
        exclude module: 'wagon-http-lightweight'
        exclude module: 'wagon-provider-api'
    }

//    compile files(myClasspath.split(";"))
}

robolectric {
    // configure the set of classes for JUnit tests
    include '**/*Test.class'
    exclude '**/espresso/**/*.class'

    // configure max heap size of the test JVM
    maxHeapSize = '2048m'

    // configure the test JVM arguments
    jvmArgs '-XX:MaxPermSize=512m', '-XX:-UseSplitVerifier'

    // Specify max number of processes (default is 1)
    maxParallelForks = 4

    // Specify max number of test classes to execute in a test process
    // before restarting the process (default is unlimited)
    forkEvery = 150

    // configure whether failing tests should fail the build
    ignoreFailures true

    // use afterTest to listen to the test execution results
    afterTest { descriptor, result ->
        println "Executing test for ${descriptor.name} with result: ${result.resultType}"
    }
}

將您的Android Gradle插件版本更改為:

dependencies {
    classpath 'com.android.tools.build:gradle:1.1.2'
}

這是該插件的早期版本中的一個錯誤,該錯誤無法在Windows上正確轉義非法字符,並且已在v1.1.2中修復:

https://code.google.com/p/android/issues/detail?id=148912

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM