From 3269d4aed13bca1f45be84d1c638b10b87487b8b Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 18 Jul 2023 11:03:18 +0100 Subject: [PATCH 1/2] [Xamarin.Android.Build.Tasks] Unable to use import androidx.appcompat.widget.Toolbar into a java file when using AndroidJavaSource Fixes #8191 TODO --- .../targets/Microsoft.Android.Sdk.BuildOrder.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets index 4a4a3432258..4bfa0ff3d74 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.BuildOrder.targets @@ -187,6 +187,7 @@ properties that determine build ordering. <_CompileBindingJavaDependsOnTargets> _AdjustJavacVersionArguments; + _GetLibraryImports; _DetermineBindingJavaLibrariesToCompile; _GetJavaPlatformJar; From cae5fb1384757ec4245bd5416bb517f09504099e Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Mon, 24 Jul 2023 14:08:36 +0100 Subject: [PATCH 2/2] Add Unit Test --- .../Xamarin.Android.Build.Tests/BuildTest.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs index 0d4182e2003..9405f155328 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs @@ -1554,6 +1554,35 @@ public void CheckLintConfigMerging () } } + [Test] + public void BuildApplicationWithJavaSourceUsingAndroidX ([Values(true, false)] bool isRelease) + { + var proj = new XamarinAndroidApplicationProject () { + IsRelease = isRelease, + OtherBuildItems = { + new BuildItem (AndroidBuildActions.AndroidJavaSource, "ToolbarEx.java") { + TextContent = () => @"package com.unnamedproject.unnamedproject; +import android.content.Context; +import androidx.appcompat.widget.Toolbar; +public class ToolbarEx { + public static Toolbar GetToolbar (Context context) { + return new Toolbar (context); + } +} +", + Encoding = Encoding.ASCII + }, + } + }; + proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); + using (var b = CreateApkBuilder ()) { + b.ThrowOnBuildFailure = false; + Assert.IsTrue (b.Build (proj), "Build should have succeeded"); + + Assert.IsTrue (b.Clean (proj), "Clean should have succeeded."); + } + } + [Test] public void BuildApplicationCheckThatAddStaticResourcesTargetDoesNotRerun () {