I trying to start application via gradle
task
.
task runDebug(dependsOn: [\'installDebug\', \'run\']) {
}
task run(type: Exec) {
comm
The problem was solved.
The variable must contain
def adb = "$System.env.ANDROID_HOME/platform-tools/adb"
And complete task looks like
task run(type: Exec) {
def adb = "$System.env.ANDROID_HOME/platform-tools/adb"
commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.example.myexample/.ui.SplashScreenActivity'
}
UPD
Another way without using ANDROID_HOME
task run(type: Exec) {
def rootDir = project.rootDir
def localProperties = new File(rootDir, "local.properties")
if (localProperties.exists()) {
Properties properties = new Properties()
localProperties.withInputStream {
instr -> properties.load(instr)
}
def sdkDir = properties.getProperty('sdk.dir')
def adb = "$sdkDir/platform-tools/adb"
commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.example.myexample/.ui.SplashScreenActivity'
}
}
In Windows you can just register an application path
for adb.exe
with the following .reg
file:
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\adb.exe]
@="D:\\android\\android-studio\\sdk\\platform-tools\\adb.exe"
"Path"="D:\\android\\android-studio\\sdk\\platform-tools"
and just keep your original commandline
we can get if from android extension.
android.adbExe
def androidPlugin = project.plugins.findPlugin("android")
def adb = androidPlugin.sdkHandler.sdkInfo?.adb
My default solution for this issue is to add adb to your path variable so you can use the adb command from every path.
You can set it e.g. from the console like this:
set path=%path%;x:\path\to\adb
Alternative you can set it via the UI. See also this explanation on java.com.
You should use the logic that the Android Gradle plugin already has for finding the SDK and adb locations to ensure your script is using the same ones.
# Android Gradle >= 1.1.0
File sdk = android.getSdkDirectory()
File adb = android.getAdbExe()
# Android Gradle < 1.1.0
File sdk = android.plugin.getSdkFolder()
File adb = android.plugin.extension.getAdbExe()