diff --git a/README.md b/README.md
index 1b6c111..6115b44 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,7 @@ JSON file scheme:
```
Parameters:
-
For official help refer to `avdmanager` binary file: `/tools/bin/avdmanager create avd`
+
For official help refer to `avdmanager` binary file: `/cmdline-tools/latest/bin/avdmanager create avd`
- `avd_name` - name of your AVD, avoid using spaces, this field is necessary
- `create_avd_package` - path to system image in example "system-images;android-23;google_apis;x86_64"
- `create_avd_device` - name of your device visible on `avdmanager list device` list
diff --git a/lib/fastlane/plugin/automated_test_emulator_run.rb b/lib/fastlane/plugin/automated_test_emulator_run.rb
index 318056a..1e4841c 100644
--- a/lib/fastlane/plugin/automated_test_emulator_run.rb
+++ b/lib/fastlane/plugin/automated_test_emulator_run.rb
@@ -3,7 +3,7 @@
module Fastlane
module AutomatedTestEmulatorRun
def self.all_classes
- Dir[File.expand_path('**/{actions,factory,provider}/*.rb', File.dirname(__FILE__))]
+ Dir[File.expand_path('**/{actions,factory,provider,helper}/*.rb', File.dirname(__FILE__))]
end
end
end
diff --git a/lib/fastlane/plugin/automated_test_emulator_run/actions/automated_test_emulator_run_action.rb b/lib/fastlane/plugin/automated_test_emulator_run/actions/automated_test_emulator_run_action.rb
index b85307e..68d9945 100644
--- a/lib/fastlane/plugin/automated_test_emulator_run/actions/automated_test_emulator_run_action.rb
+++ b/lib/fastlane/plugin/automated_test_emulator_run/actions/automated_test_emulator_run_action.rb
@@ -386,8 +386,8 @@ def self.available_options
optional: false),
FastlaneCore::ConfigItem.new(key: :SDK_path,
env_name: "SDK_PATH",
- description: "The path to your android sdk directory (root). ANDROID_HOME by default",
- default_value: ENV['ANDROID_HOME'],
+ description: "The path to your android sdk directory (root). ANDROID_SDK_ROOT by default",
+ default_value: ENV['ANDROID_SDK_ROOT'] || ENV['ANDROID_HOME'],
is_string: true,
optional: true),
diff --git a/lib/fastlane/plugin/automated_test_emulator_run/factory/adb_controller_factory.rb b/lib/fastlane/plugin/automated_test_emulator_run/factory/adb_controller_factory.rb
index 4271093..c541366 100644
--- a/lib/fastlane/plugin/automated_test_emulator_run/factory/adb_controller_factory.rb
+++ b/lib/fastlane/plugin/automated_test_emulator_run/factory/adb_controller_factory.rb
@@ -16,9 +16,9 @@ def self.get_adb_controller(params)
UI.message(["Preparing commands for Android ADB"].join(" ").yellow)
# Get paths
- path_sdk = "#{params[:SDK_path]}"
- path_avdmanager_binary = path_sdk + "/tools/bin/avdmanager"
- path_adb = path_sdk + "/platform-tools/adb"
+ sdk_helper = Helper::SdkHelper.new(params)
+ path_avdmanager_binary = sdk_helper.avd_manager
+ path_adb = sdk_helper.adb
# ADB shell command parts
sh_stop_adb = "kill-server"
diff --git a/lib/fastlane/plugin/automated_test_emulator_run/factory/avd_controller_factory.rb b/lib/fastlane/plugin/automated_test_emulator_run/factory/avd_controller_factory.rb
index a540c3d..d020620 100644
--- a/lib/fastlane/plugin/automated_test_emulator_run/factory/avd_controller_factory.rb
+++ b/lib/fastlane/plugin/automated_test_emulator_run/factory/avd_controller_factory.rb
@@ -18,9 +18,9 @@ def self.get_avd_controller(params, avd_scheme)
UI.message(["Preparing parameters and commands for emulator:", avd_scheme.avd_name].join(" ").yellow)
# Get paths
- path_sdk = "#{params[:SDK_path]}"
- path_avdmanager_binary = path_sdk + "/tools/bin/avdmanager"
- path_adb = path_sdk + "/platform-tools/adb"
+ sdk_helper = Helper::SdkHelper.new(params)
+ path_avdmanager_binary = sdk_helper.avd_manager
+ path_adb = sdk_helper.adb
path_avd = "#{params[:AVD_path]}"
# Create AVD shell command parts
@@ -51,7 +51,7 @@ def self.get_avd_controller(params, avd_scheme)
sh_create_config_loc = "#{path_avd}/#{avd_scheme.avd_name}.avd/config.ini"
# Launch AVD shell command parts
- sh_launch_emulator_binary = [path_sdk, "/emulator/", avd_scheme.launch_avd_launch_binary_name].join("")
+ sh_launch_emulator_binary = [sdk_helper.emulator_dir, avd_scheme.launch_avd_launch_binary_name].join("")
sh_launch_avd_name = ["-avd ", avd_scheme.avd_name].join("")
sh_launch_avd_additional_options = avd_scheme.launch_avd_additional_options
sh_launch_avd_port = ["-port", avd_scheme.launch_avd_port].join(" ")
diff --git a/lib/fastlane/plugin/automated_test_emulator_run/helper/sdk_tools_helper.rb b/lib/fastlane/plugin/automated_test_emulator_run/helper/sdk_tools_helper.rb
new file mode 100644
index 0000000..1da8269
--- /dev/null
+++ b/lib/fastlane/plugin/automated_test_emulator_run/helper/sdk_tools_helper.rb
@@ -0,0 +1,35 @@
+module Fastlane
+ module Helper
+ class SdkHelper
+ def initialize(params)
+ @sdk_root_path = params[:SDK_path]
+ end
+
+ def command_line_tools_dir
+ return "#{@sdk_root_path}/cmdline-tools/latest/bin" if File.exist?("#{@sdk_root_path}/cmdline-tools/latest/bin")
+
+ return tools_dir # Fallback on old tools path
+ end
+
+ def tools_dir
+ return "#{@sdk_root_path}/tools/bin"
+ end
+
+ def platform_tools_dir
+ return "#{@sdk_root_path}/platform-tools"
+ end
+
+ def emulator_dir
+ return "#{@sdk_root_path}/emulator/"
+ end
+
+ def adb
+ return "#{platform_tools_dir}/adb"
+ end
+
+ def avd_manager
+ return "#{command_line_tools_dir}/avdmanager"
+ end
+ end
+ end
+end
\ No newline at end of file