diff --git a/Configuration.props b/Configuration.props
index c7c2df0e021..1a467652e80 100644
--- a/Configuration.props
+++ b/Configuration.props
@@ -145,6 +145,7 @@
$([System.IO.Path]::GetFullPath ('$(MonoSourceDirectory)'))
$([System.IO.Path]::GetFullPath ('$(SqliteSourceDirectory)'))
$([System.IO.Path]::GetFullPath ('$(OpenTKSourceDirectory)'))
+ net8.0
$(AndroidSdkFullPath)\platform-tools\
diff --git a/build-tools/create-packs/Microsoft.Android.Ref.proj b/build-tools/create-packs/Microsoft.Android.Ref.proj
index dfbfc76d9b5..9a1bdd0dadf 100644
--- a/build-tools/create-packs/Microsoft.Android.Ref.proj
+++ b/build-tools/create-packs/Microsoft.Android.Ref.proj
@@ -31,7 +31,7 @@ by projects that use the Microsoft.Android framework in .NET 6+.
- <_AndroidRefPackAssemblies Include="$(JavaInteropSourceDirectory)\bin\$(Configuration)-net7.0\ref\Java.Interop.dll" />
+ <_AndroidRefPackAssemblies Include="$(JavaInteropSourceDirectory)\bin\$(Configuration)-$(JavaInteropTargetFrameworkVersion)\ref\Java.Interop.dll" />
<_AndroidRefPackAssemblies Include="$(_MonoAndroidNETDefaultOutDir)ref\Mono.Android.dll" />
<_AndroidRefPackAssemblies Include="$(_MonoAndroidNETDefaultOutDir)ref\Mono.Android.Runtime.dll" />
diff --git a/external/Java.Interop b/external/Java.Interop
index 7f08b77f346..dfcbd670304 160000
--- a/external/Java.Interop
+++ b/external/Java.Interop
@@ -1 +1 @@
-Subproject commit 7f08b77f3464f2b276ec5edd2e4836b1915f86dd
+Subproject commit dfcbd670304bb3d4becc6c76a3c16f10a158efae
diff --git a/external/xamarin-android-tools b/external/xamarin-android-tools
index ed102fc9087..a698a33aa4f 160000
--- a/external/xamarin-android-tools
+++ b/external/xamarin-android-tools
@@ -1 +1 @@
-Subproject commit ed102fc90870f87b958fec82414cf2dc909e15c2
+Subproject commit a698a33aa4ffcaac90b54caf5e77236d57b0cf9e
diff --git a/src/Mono.Android/Mono.Android.csproj b/src/Mono.Android/Mono.Android.csproj
index 7e7ad031604..006ebd5eb41 100644
--- a/src/Mono.Android/Mono.Android.csproj
+++ b/src/Mono.Android/Mono.Android.csproj
@@ -400,7 +400,7 @@
SkipUnchangedFiles="true"
/>
diff --git a/src/monodroid/jni/embedded-assemblies.hh b/src/monodroid/jni/embedded-assemblies.hh
index 2ca1511ce11..f04f1d9f0bc 100644
--- a/src/monodroid/jni/embedded-assemblies.hh
+++ b/src/monodroid/jni/embedded-assemblies.hh
@@ -82,11 +82,10 @@ namespace xamarin::android::internal {
static constexpr off_t ZIP_CENTRAL_LEN = 46;
static constexpr off_t ZIP_LOCAL_LEN = 30;
- // TODO: fix
static constexpr std::string_view zip_path_separator { "/" };
static constexpr std::string_view apk_lib_dir_name { "lib" };
static constexpr size_t assemblies_prefix_size = calc_size(apk_lib_dir_name, zip_path_separator, SharedConstants::android_lib_abi, zip_path_separator);
- static constexpr auto assemblies_prefix = concat_string_views (apk_lib_dir_name, zip_path_separator, SharedConstants::android_lib_abi, zip_path_separator);
+ static constexpr auto assemblies_prefix = concat_string_views (apk_lib_dir_name, zip_path_separator, SharedConstants::android_lib_abi, zip_path_separator);
// We have two records for each assembly, for names with and without the extension
static constexpr uint32_t assembly_store_index_entries_per_assembly = 2;
diff --git a/src/monodroid/jni/monodroid-glue.cc b/src/monodroid/jni/monodroid-glue.cc
index c2bdffc82fa..d1ce1441d6f 100644
--- a/src/monodroid/jni/monodroid-glue.cc
+++ b/src/monodroid/jni/monodroid-glue.cc
@@ -12,6 +12,7 @@
#include
#include
#include
+
#include
#include
#include
diff --git a/src/monodroid/jni/shared-constants.hh b/src/monodroid/jni/shared-constants.hh
index 7ae715b0e8f..2c706ae2df7 100644
--- a/src/monodroid/jni/shared-constants.hh
+++ b/src/monodroid/jni/shared-constants.hh
@@ -20,16 +20,11 @@ namespace xamarin::android::internal
public:
// These three MUST be the same as like-named constants in src/Xamarin.Android.Build.Tasks/Utilities/MonoAndroidHelper.Basic.cs
static constexpr std::string_view MANGLED_ASSEMBLY_NAME_EXT { ".so" };
-// static constexpr size_t MANGLED_ASSEMBLY_NAME_EXT_LEN = sizeof(MANGLED_ASSEMBLY_NAME_EXT) - 1;
-
static constexpr std::string_view MANGLED_ASSEMBLY_REGULAR_ASSEMBLY_MARKER { "lib_" };
static constexpr size_t REGULAR_ASSEMBLY_MARKER_INDEX = 3; // this ☝️
-// static constexpr size_t REGULAR_ASSEMBLY_PREFIX_LEN = sizeof(SharedConstants::MANGLED_ASSEMBLY_REGULAR_ASSEMBLY_MARKER) - 1;
static constexpr char REGULAR_ASSEMBLY_MARKER_CHAR = MANGLED_ASSEMBLY_REGULAR_ASSEMBLY_MARKER[REGULAR_ASSEMBLY_MARKER_INDEX];
-
static constexpr std::string_view MANGLED_ASSEMBLY_SATELLITE_ASSEMBLY_MARKER { "lib-" };
static constexpr size_t SATELLITE_ASSEMBLY_MARKER_INDEX = 3; // this ☝️
-// static constexpr size_t SATELLITE_ASSEMBLY_PREFIX_LEN = sizeof(SharedConstants::MANGLED_ASSEMBLY_SATELLITE_ASSEMBLY_MARKER) - 1;
static constexpr char SATELLITE_ASSEMBLY_MARKER_CHAR = MANGLED_ASSEMBLY_SATELLITE_ASSEMBLY_MARKER[SATELLITE_ASSEMBLY_MARKER_INDEX];
static constexpr std::string_view MONO_ANDROID_RUNTIME_ASSEMBLY_NAME { "Mono.Android.Runtime" };