Я пишу задачу градиента, чтобы установить apk для эмуляторов до запуска тестов эспрессо.Задача Gradle с использованием adb для установки apk не выполняется
Это задача, которую я имею до сих пор.
task installButlerApk {
doLast {
println "Verifying test-butler installation in emulators"
final adb = "$android.sdkDirectory.absolutePath/platform-tools/adb"
final String[] split = ["$adb", "devices", "-l"].execute().text.split("\\r?\\n")
split.each {
if (it.isEmpty())
return;
println "Emulator: $it"
final emu = it.split("\\s")[0]
checks whether the APK is already installed
if (["$adb", "-s", "$emu", "shell", "pm", "list", "packages"].execute().text.contains(butlerPackage))
return;
final installResult = ["$adb", "-s", "$emu", "install", "$butlerApkPath"].execute().text
if (!installResult.contains("Success"))
println "Could not install APK. Install output:\n$installResult"
else
println "Installed $butlerApkPath in $emu successfully"
}
}
}
Однако когда я запустить его с помощью терминала задание заканчивается замораживание. Я не знаю, почему. Я сделал некоторые исследования об этом, и однажды я подумал, что команда, передаваемая процессу ProcessGroovyMethods, терпит неудачу, потому что она передается как строка (execute(String self)
), поэтому я затем использовал представление массива execute (execute(String[] commandArray)
), чтобы узнать, это будет работать, но я все равно получаю тот же результат, поэтому я просто прошу кого-то, у кого есть опыт написания этих задач, чтобы оказать мне некоторую помощь. До сих пор я печатаю результат команды, и она не обнаружила никаких ошибок. Это просто застряло в процессе строительства часами.
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Users\Joel\Documents\Projects\Forms>gradlew installButlerApk
Picked up _JAVA_OPTIONS: -XX:ParallelGCThreads=2
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon:
https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html.
Incremental java compilation is an incubating feature.
:app:installButlerApk
Verifying test-butler installation in emulators
Emulator: List of devices attached
> Building 0% > :app:installButlerApk