From 86372e583abac8cdfe2042bfeea683b5cb4534d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=96=D0=B8?= =?UTF-8?q?=D0=B3=D1=83=D0=BB=D1=8C=D1=81=D0=BA=D0=B8=D0=B9?= Date: Tue, 5 Mar 2024 18:27:13 +0300 Subject: [PATCH 1/3] fixed multidex --- platform/android/build/android_tools.rb | 15 ++++++++++++--- platform/android/build/dex_builder.rb | 4 +++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/platform/android/build/android_tools.rb b/platform/android/build/android_tools.rb index 32c99931d4..f699eadd16 100644 --- a/platform/android/build/android_tools.rb +++ b/platform/android/build/android_tools.rb @@ -31,6 +31,7 @@ require 'pp' require 'open3' +require 'find' module AndroidTools @@ -978,9 +979,17 @@ def apk_build(sdk, apk_name, res_name, dex_name, debug) puts "Building APK file..." #just put dex file to a copy of already prepared intermediate APK - cp res_name, apk_name - params = [ '-uf', apk_name, '-C', File.dirname(dex_name), File.basename(dex_name) ] - Jake.run( @@jarbin, params) + cp res_name, apk_name + dex_files = [] + + Find.find(File.dirname(dex_name)) do |path| + dex_files << path if path.end_with?('.dex') + end + + dex_files.each do |dex_file| + params = [ '-uf', apk_name, '-C', File.dirname(dex_file), File.basename(dex_file)] + Jake.run( @@jarbin, params) + end unless $?.success? raise 'Error building APK file' diff --git a/platform/android/build/dex_builder.rb b/platform/android/build/dex_builder.rb index 36625e89e3..015f5b8829 100644 --- a/platform/android/build/dex_builder.rb +++ b/platform/android/build/dex_builder.rb @@ -75,7 +75,9 @@ def build_cmd_line(tools_path, jarlist, outdex) args << "#{File.dirname(outdex)}" #args << '--no-desugaring' args.concat jarlist - + args << '--min-api' + args << $app_config["android"]["minSDK"] + return d8, args else @logger.error( "Can't find proper DEX builder in the build tools") From b53c6a9cd66133476d826ec4cfde3d0566d2ab84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=96=D0=B8?= =?UTF-8?q?=D0=B3=D1=83=D0=BB=D1=8C=D1=81=D0=BA=D0=B8=D0=B9?= Date: Tue, 5 Mar 2024 20:25:05 +0300 Subject: [PATCH 2/3] fixed min_sdk --- platform/android/build/android.rake | 2 +- platform/android/build/dex_builder.rb | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/platform/android/build/android.rake b/platform/android/build/android.rake index b0ff27b49e..b9acfe6db1 100644 --- a/platform/android/build/android.rake +++ b/platform/android/build/android.rake @@ -3031,7 +3031,7 @@ namespace "package" do jarsForDX << File.join(proguardPostBuild, "classes-processed.jar") end - unless AndroidTools::DexBuilder.instance.build( jarsForDX, "#{File.join($bindir,'classes.dex')}") + unless AndroidTools::DexBuilder.instance.build( jarsForDX, "#{File.join($bindir,'classes.dex')}", $min_sdk_level) raise "Error running DEX builder" end diff --git a/platform/android/build/dex_builder.rb b/platform/android/build/dex_builder.rb index 015f5b8829..c70eaa620b 100644 --- a/platform/android/build/dex_builder.rb +++ b/platform/android/build/dex_builder.rb @@ -9,8 +9,11 @@ class DexBuilder attr_accessor :logger, :sdk_path, :build_tools_path, :androidplatform, :javabin - def build( jarlist = [], outdex ) + $min_sdk_level="" + + def build( jarlist = [], outdex, min_sdk_level ) tools_path = detect_tools_path + $min_sdk_level = min_sdk_level bin,args = build_cmd_line(tools_path, jarlist, outdex) @@ -76,7 +79,7 @@ def build_cmd_line(tools_path, jarlist, outdex) #args << '--no-desugaring' args.concat jarlist args << '--min-api' - args << $app_config["android"]["minSDK"] + args << $min_sdk_level.to_s return d8, args else From 97a2f17916562a529974cb705746253364de988e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=96=D0=B8?= =?UTF-8?q?=D0=B3=D1=83=D0=BB=D1=8C=D1=81=D0=BA=D0=B8=D0=B9?= Date: Wed, 6 Mar 2024 12:21:40 +0300 Subject: [PATCH 3/3] fixed min_sdk --- platform/android/build/dex_builder.rb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/platform/android/build/dex_builder.rb b/platform/android/build/dex_builder.rb index c70eaa620b..5ea424083a 100644 --- a/platform/android/build/dex_builder.rb +++ b/platform/android/build/dex_builder.rb @@ -9,13 +9,10 @@ class DexBuilder attr_accessor :logger, :sdk_path, :build_tools_path, :androidplatform, :javabin - $min_sdk_level="" - - def build( jarlist = [], outdex, min_sdk_level ) + def build( jarlist = [], outdex, min_sdk ) tools_path = detect_tools_path - $min_sdk_level = min_sdk_level - bin,args = build_cmd_line(tools_path, jarlist, outdex) + bin,args = build_cmd_line(tools_path, jarlist, outdex, min_sdk) @logger.debug "BIN: #{bin}, ARGS: #{args}" return false unless bin @@ -44,7 +41,7 @@ def detect_tools_path path end - def build_cmd_line(tools_path, jarlist, outdex) + def build_cmd_line(tools_path, jarlist, outdex, min_sdk) @logger.error( "DEX builder: path to build tools not set" ) unless @build_tools_path @@ -79,7 +76,7 @@ def build_cmd_line(tools_path, jarlist, outdex) #args << '--no-desugaring' args.concat jarlist args << '--min-api' - args << $min_sdk_level.to_s + args << min_sdk.to_s return d8, args else