4
votes

Running gradlew test --stacktrace on Windows 8.1. I'm getting this error:

Could not normalize path for file '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'.

I know its because there is no file called that. I need to be able to split(";") this but I'm not sure how to in DST. Here is my module's 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}"
    }
}
1
At what stage of the build do you get the error above? What is it trying to do before the failure?Alex Florescu
If you change your compileSdkVersion to 18 and buildToolsVersion to 21.1.2? You're not targeting to KitKat and Lollipop, why?Eugen Martynov
@AlexFlorescu I'm using running "gradlew test". The failure comes after during testDebug. The previous line, testDebugClasses was successful. Here's the stacktrace: hastebin.com/omunezimim.rbKennethOXu

1 Answers

1
votes

Change your Android Gradle plugin version to:

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

This was a bug in earlier versions of the plugin that didn't properly escape illegal characters on Windows, and its fixed in v1.1.2:

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