diff --git a/.github/workflows/test-mobile.yml b/.github/workflows/test-mobile.yml index 73d83e9dd..41af43d59 100644 --- a/.github/workflows/test-mobile.yml +++ b/.github/workflows/test-mobile.yml @@ -77,13 +77,13 @@ jobs: working-directory: ./examples/api run: yarn - - name: Init Android Studio Project + - name: init Android Studio project working-directory: ./examples/api run: ../../tooling/cli/target/debug/cargo-tauri android init env: NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} - - name: Build apk + - name: build APK working-directory: ./examples/api run: ../../tooling/cli/target/debug/cargo-tauri android build env: diff --git a/tooling/cli/src/mobile/android/build.rs b/tooling/cli/src/mobile/android/build.rs index f86276e8f..87f936a96 100644 --- a/tooling/cli/src/mobile/android/build.rs +++ b/tooling/cli/src/mobile/android/build.rs @@ -72,7 +72,7 @@ pub fn command(options: Options, noise_level: NoiseLevel) -> Result<()> { delete_codegen_vars(); with_config( Some(Default::default()), - |app, config, _metadata, _cli_options| { + |app, config, metadata, _cli_options| { set_var("WRY_RUSTWEBVIEWCLIENT_CLASS_EXTENSION", ""); set_var("WRY_RUSTWEBVIEW_CLASS_INIT", ""); @@ -81,6 +81,20 @@ pub fn command(options: Options, noise_level: NoiseLevel) -> Result<()> { let mut env = env()?; configure_cargo(app, Some((&mut env, config)))?; + // run an initial build to initialize plugins + Target::all().first_key_value().unwrap().1.build( + config, + metadata, + &env, + noise_level, + true, + if options.debug { + Profile::Debug + } else { + Profile::Release + }, + )?; + let open = options.open; run_build(options, config, &mut env, noise_level)?; @@ -120,7 +134,7 @@ fn run_build( .triple .into(), ); - let mut interface = crate::build::setup(&mut build_options, true)?; + let interface = crate::build::setup(&mut build_options, true)?; let interface_options = InterfaceOptions { debug: build_options.debug, @@ -156,9 +170,6 @@ fn run_build( .get_or_insert(Vec::new()) .push("custom-protocol".into()); - // run an initial build to initialize plugins - interface.build(interface_options)?; - let apk_outputs = if options.apk { apk::build( config, diff --git a/tooling/cli/src/mobile/android/dev.rs b/tooling/cli/src/mobile/android/dev.rs index 802f637a9..027864d72 100644 --- a/tooling/cli/src/mobile/android/dev.rs +++ b/tooling/cli/src/mobile/android/dev.rs @@ -16,9 +16,11 @@ use tauri_mobile::{ config::{Config as AndroidConfig, Metadata as AndroidMetadata}, device::Device, env::Env, + target::Target, }, config::app::App, opts::{FilterLevel, NoiseLevel, Profile}, + target::TargetTrait, }; use std::env::set_var; @@ -112,12 +114,11 @@ fn run_dev( }; let mut dev_options: DevOptions = options.clone().into(); - dev_options.target = Some( - device - .as_ref() - .map(|d| d.target().triple.to_string()) - .unwrap_or_else(|| "aarch64-linux-android".into()), - ); + let target_triple = device + .as_ref() + .map(|d| d.target().triple.to_string()) + .unwrap_or_else(|| Target::all().first_key_value().unwrap().1.triple.into()); + dev_options.target = Some(target_triple.clone()); let mut interface = crate::dev::setup(&mut dev_options, true)?; let interface_options = InterfaceOptions { @@ -134,7 +135,11 @@ fn run_dev( configure_cargo(app, Some((&mut env, config)))?; // run an initial build to initialize plugins - interface.build(interface_options)?; + let target = Target::all() + .values() + .find(|t| t.triple == target_triple) + .unwrap_or(Target::all().first_key_value().unwrap().1); + target.build(config, metadata, &env, noise_level, true, Profile::Debug)?; let open = options.open; let exit_on_panic = options.exit_on_panic;