2017-03-04 5 views
0

のGradle 3.4を見つけることができませんでした:アンドロイド、Gradleの "オンザフライ" でタスクを作成する - 方法

def currentVariantName = "prod" 
task runAllTestProd(dependsOn: ["test$currentVariantName" + "UnitTest", "connected$currentVariantName" + "AndroidTest"]) { 
... 
} 

それは仕事の罰金です:

私はいくつかのGradleのタスクを持っています。

しかし、私は "その場で" このタスクを作成したい:

android.applicationVariants.all { variant -> 
    def variantName = variant.getName() 
    if (!variantName.equalsIgnoreCase("release")) { 
     def currentVariantName = variantName.capitalize() 
     def currentUnitTestName = "test$currentVariantName" + "UnitTest" 
     def currentInstrumentedTestName = "connected$currentVariantName" + "AndroidTest" 
     task "runAllTest$currentVariantName"(dependsOn: "[$currentUnitTestName", "$currentInstrumentedTestName]") { 
      description = "Run all tests for buildType: $currentVariantName" 
     } 
    } 
} 

はエラーを取得:

Error:(181, 0) Could not find method runAllTestProd() for arguments [{dependsOn=[testProdUnitTest}, connectedProdAndroidTest], [email protected]6] on object of type com.android.build.gradle.internal.api.ApplicationVariantImpl. 

ファイルを開く

答えて

0

私は問題を発見しました。構文エラー。行内の変更"dependsOn:..."。

ここ正しいコード:

android.applicationVariants.all { variant -> 
def variantName = variant.getName() 
if (!variantName.equalsIgnoreCase("release")) { 
    def currentVariantName = variantName.capitalize() 
    def currentUnitTestName = "test$currentVariantName" + "UnitTest" 
    def currentInstrumentedTestName = "connected$currentVariantName" + "AndroidTest" 
    task "runAllTest$currentVariantName"(dependsOn: ["$currentUnitTestName", "$currentInstrumentedTestName"]) { 
     description = "Run all tests for buildType: $currentVariantName" 
    } 
} 

}

関連する問題