2

I am trying to add: installDebug.dependsOn(uninstallDebug) to my build file like this.

Adding this the the main build file fails as well as adding it to the app build file (either inside or outside the: android {}).

Thanks for help

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:1.5.0' // was 1.3.1
            classpath 'org.hidetake:gradle-ssh-plugin:1.1.2'
        }
    }
//  installDebug.dependsOn(uninstallDebug) // gets: Error:(12, 0) Could not find property 'installDebug' on root project 'Cb7'.

    allprojects {
        repositories {
            jcenter()
        }
    }
    apply plugin: 'org.hidetake.ssh'
    remotes {
        web1 {
            host = 'tayek.com'
            user = 'rtayek'
            password=project.property('password')
        }
    }
    task deliver(dependsOn: ':app:assemble') << {
        ssh.run {
            session(remotes.web1) {
                execute 'pwd'
                put from: 'app/build/outputs/apk/app-debug.apk', into: 'html/conrad/app-debug.apk'
                put from: 'app/build/outputs/apk/app-debug-unaligned.apk', into: 'html/conrad/app-debug-unaligned.apk'
                put from: 'app/build/outputs/apk/app-release-unsigned.apk', into: 'html/conrad/app-release-unsigned.apk'
                execute 'ls -l html/conrad'
            }
        }
    }

apply plugin: 'com.android.application'
android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    lintOptions {
        abortOnError false
    }
    defaultConfig {
        applicationId "com.tayek.tablet.gui.android.cb7"
        minSdkVersion 17 // try 19 - 19 does not work :(
        targetSdkVersion 22 // was 23. https://stackoverflow.com/questions/4568267/android-min-sdk-version-vs-target-sdk-version/4568358#4568358
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    //installDebug.dependsOn(uninstallDebug) // Error:(20, 0) Could not find property 'installDebug' on com.android.build.gradle.AppExtension_Decorated@1fc61c76.

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
//installDebug.dependsOn(uninstallDebug) // Error:(28, 0) Could not find property 'installDebug' on project ':app'.

def jdkHome = System.getenv("JAVA_HOME")
dependencies {
    //compile files("${jdkHome}/lib/tools.jar") // who needs this?
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    //compile files('libs/rabbit.jar')
    //compile files('libs/rabbit-1.0.jar') // not using maven local or flat dirs (yet)
    //runtime files('libs/rabbit-1.0.jar') // try to fix NoClassDefFoundError // does not work
}
Community
  • 1
  • 1
Ray Tayek
  • 9,841
  • 8
  • 50
  • 90

1 Answers1

1

You can defer the association between tasks until after the project is fully evaluated and the tasks are created:

afterEvaluate {
    installDebug.dependsOn(uninstallDebug)
}

Do this at the top level of your build.gradle, not inside the android block.

Doug Stevenson
  • 297,357
  • 32
  • 422
  • 441