From 79f521d941ee6e32f2136dd47fc7b69134596781 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Wed, 12 Jan 2022 03:10:22 -0500 Subject: [PATCH 01/12] Use .net6-android sdk --- Avalonia.sln | 3 +- build/AndroidWorkarounds.props | 16 -- .../Assets/AboutAssets.txt | 19 -- .../ControlCatalog.Android.csproj | 172 ++---------------- .../ControlCatalog.Android/MainActivity.cs | 2 +- .../Properties/AndroidManifest.xml | 7 +- .../Properties/AssemblyInfo.cs | 30 --- .../Resources/Resource.Designer.cs | 101 ---------- .../ControlCatalog.Android/SplashActivity.cs | 2 +- .../Avalonia.Android/AndroidPlatform.cs | 9 +- src/Android/Avalonia.Android/AppBuilder.cs | 14 -- .../Avalonia.Android/Avalonia.Android.csproj | 12 +- .../Assets/AboutAssets.txt | 19 -- .../Avalonia.AndroidTestApplication.csproj | 163 ++--------------- .../Properties/AndroidManifest.xml | 6 +- .../Properties/AssemblyInfo.cs | 30 --- .../Resources/Resource.Designer.cs | 79 -------- .../app.config | 11 -- 18 files changed, 54 insertions(+), 641 deletions(-) delete mode 100644 build/AndroidWorkarounds.props delete mode 100644 samples/ControlCatalog.Android/Assets/AboutAssets.txt delete mode 100644 samples/ControlCatalog.Android/Properties/AssemblyInfo.cs delete mode 100644 samples/ControlCatalog.Android/Resources/Resource.Designer.cs delete mode 100644 src/Android/Avalonia.Android/AppBuilder.cs delete mode 100644 src/Android/Avalonia.AndroidTestApplication/Assets/AboutAssets.txt delete mode 100644 src/Android/Avalonia.AndroidTestApplication/Properties/AssemblyInfo.cs delete mode 100644 src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs delete mode 100644 src/Android/Avalonia.AndroidTestApplication/app.config diff --git a/Avalonia.sln b/Avalonia.sln index 0354e20d4f..80a8841862 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -77,7 +77,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Android", "Android", "{7CF9 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Android", "src\Android\Avalonia.Android\Avalonia.Android.csproj", "{7B92AF71-6287-4693-9DCB-BD5B6E927E23}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.AndroidTestApplication", "src\Android\Avalonia.AndroidTestApplication\Avalonia.AndroidTestApplication.csproj", "{FF69B927-C545-49AE-8E16-3D14D621AA12}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.AndroidTestApplication", "src\Android\Avalonia.AndroidTestApplication\Avalonia.AndroidTestApplication.csproj", "{FF69B927-C545-49AE-8E16-3D14D621AA12}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "iOS", "iOS", "{0CB0B92E-6CFF-4240-80A5-CCAFE75D91E1}" EndProject @@ -115,7 +115,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.NetCore", "s EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1-27F5-4255-9AFC-04ABFD11683A}" ProjectSection(SolutionItems) = preProject - build\AndroidWorkarounds.props = build\AndroidWorkarounds.props build\ApiDiff.props = build\ApiDiff.props build\Base.props = build\Base.props build\Binding.props = build\Binding.props diff --git a/build/AndroidWorkarounds.props b/build/AndroidWorkarounds.props deleted file mode 100644 index de86acc6de..0000000000 --- a/build/AndroidWorkarounds.props +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - false - - diff --git a/samples/ControlCatalog.Android/Assets/AboutAssets.txt b/samples/ControlCatalog.Android/Assets/AboutAssets.txt deleted file mode 100644 index a9b0638eb1..0000000000 --- a/samples/ControlCatalog.Android/Assets/AboutAssets.txt +++ /dev/null @@ -1,19 +0,0 @@ -Any raw assets you want to be deployed with your application can be placed in -this directory (and child directories) and given a Build Action of "AndroidAsset". - -These files will be deployed with your package and will be accessible using Android's -AssetManager, like this: - -public class ReadAsset : Activity -{ - protected override void OnCreate (Bundle bundle) - { - base.OnCreate (bundle); - - InputStream input = Assets.Open ("my_asset.txt"); - } -} - -Additionally, some Android functions will automatically load asset files: - -Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj index 617b6b6ab0..df68f784b8 100644 --- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj +++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj @@ -1,165 +1,31 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {29132311-1848-4FD6-AE0C-4FF841151BD3} - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Properties - ControlCatalog.Android - ControlCatalog.Android - 512 - true - Resources\Resource.Designer.cs - Off - False - v11.0 - Properties\AndroidManifest.xml + net6.0-android + 21 + Exe + enable + com.Avalonia.ControlCatalog + 1 + 1.0 + apk - - True - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - True - None - True - False - False - armeabi-v7a;x86;x86_64 - Xamarin - False - False - False - False - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - False - Full - True - False - False - armeabi-v7a,x86;x86_64 - Xamarin - False - False - False - False - False - - - - - - - - - - - - - - - - - - - - - - - - + Resources\drawable\Icon.png + + + True + True + True + + - - - - - {7B92AF71-6287-4693-9DCB-BD5B6E927E23} - Avalonia.Android - - - {d211e587-d8bc-45b9-95a4-f297c8fa5200} - Avalonia.Animation - - - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} - Avalonia.Base - - - {d2221c82-4a25-4583-9b43-d791e3f6820c} - Avalonia.Controls - - - {7062ae20-5dcc-4442-9645-8195bdece63e} - Avalonia.Diagnostics - - - {62024b2d-53eb-4638-b26b-85eeaa54866e} - Avalonia.Input - - - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} - Avalonia.Interactivity - - - {42472427-4774-4c81-8aff-9f27b8e31721} - Avalonia.Layout - - - {c42d2fc1-a531-4ed4-84b9-89aec7c962fc} - Avalonia.Themes.Fluent - - - {eb582467-6abb-43a1-b052-e981ba910e3a} - Avalonia.Visuals - - - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} - Avalonia.Styling - - - {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f} - Avalonia.Themes.Default - - - {3e53a01a-b331-47f3-b828-4a5717e77a24} - Avalonia.Markup.Xaml - - - {6417e941-21bc-467b-a771-0de389353ce6} - Avalonia.Markup - - - {7d2d3083-71dd-4cc9-8907-39a0d86fb322} - Avalonia.Skia - - - {d0a739b9-3c68-4ba6-a328-41606954b6bd} - ControlCatalog - + + - - - - diff --git a/samples/ControlCatalog.Android/MainActivity.cs b/samples/ControlCatalog.Android/MainActivity.cs index 2ab03551b6..137f280e43 100644 --- a/samples/ControlCatalog.Android/MainActivity.cs +++ b/samples/ControlCatalog.Android/MainActivity.cs @@ -8,7 +8,7 @@ namespace ControlCatalog.Android [Activity(Label = "ControlCatalog.Android", Theme = "@style/MyTheme.NoActionBar", Icon = "@drawable/icon", LaunchMode = LaunchMode.SingleInstance)] public class MainActivity : AvaloniaActivity { - protected override void OnCreate(Bundle savedInstanceState) + protected override void OnCreate(Bundle? savedInstanceState) { base.OnCreate(savedInstanceState); diff --git a/samples/ControlCatalog.Android/Properties/AndroidManifest.xml b/samples/ControlCatalog.Android/Properties/AndroidManifest.xml index 9effda7e79..aa570ec504 100644 --- a/samples/ControlCatalog.Android/Properties/AndroidManifest.xml +++ b/samples/ControlCatalog.Android/Properties/AndroidManifest.xml @@ -1,5 +1,4 @@  - - - - \ No newline at end of file + + + diff --git a/samples/ControlCatalog.Android/Properties/AssemblyInfo.cs b/samples/ControlCatalog.Android/Properties/AssemblyInfo.cs deleted file mode 100644 index baeec94648..0000000000 --- a/samples/ControlCatalog.Android/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Android.App; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ControlCatalog.Android")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ControlCatalog.Android")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/samples/ControlCatalog.Android/Resources/Resource.Designer.cs b/samples/ControlCatalog.Android/Resources/Resource.Designer.cs deleted file mode 100644 index dccc3f7159..0000000000 --- a/samples/ControlCatalog.Android/Resources/Resource.Designer.cs +++ /dev/null @@ -1,101 +0,0 @@ -#pragma warning disable 1591 -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -[assembly: global::Android.Runtime.ResourceDesignerAttribute("ControlCatalog.Android.Resource", IsApplication=true)] - -namespace ControlCatalog.Android -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.1.99.62")] - public partial class Resource - { - - static Resource() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - public static void UpdateIdValues() - { - } - - public partial class Attribute - { - - static Attribute() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Attribute() - { - } - } - - public partial class Color - { - - // aapt resource value: 0x7F010000 - public const int splash_background = 2130771968; - - static Color() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Color() - { - } - } - - public partial class Drawable - { - - // aapt resource value: 0x7F020000 - public const int Icon = 2130837504; - - // aapt resource value: 0x7F020001 - public const int splash_screen = 2130837505; - - static Drawable() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Drawable() - { - } - } - - public partial class Style - { - - // aapt resource value: 0x7F030000 - public const int MyTheme = 2130903040; - - // aapt resource value: 0x7F030001 - public const int MyTheme_NoActionBar = 2130903041; - - // aapt resource value: 0x7F030002 - public const int MyTheme_Splash = 2130903042; - - static Style() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Style() - { - } - } - } -} -#pragma warning restore 1591 diff --git a/samples/ControlCatalog.Android/SplashActivity.cs b/samples/ControlCatalog.Android/SplashActivity.cs index 6d7c6bc116..9729713833 100644 --- a/samples/ControlCatalog.Android/SplashActivity.cs +++ b/samples/ControlCatalog.Android/SplashActivity.cs @@ -10,7 +10,7 @@ namespace ControlCatalog.Android [Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)] public class SplashActivity : Activity { - protected override void OnCreate(Bundle savedInstanceState) + protected override void OnCreate(Bundle? savedInstanceState) { base.OnCreate(savedInstanceState); } diff --git a/src/Android/Avalonia.Android/AndroidPlatform.cs b/src/Android/Avalonia.Android/AndroidPlatform.cs index 2d4f6a305f..308be1325c 100644 --- a/src/Android/Avalonia.Android/AndroidPlatform.cs +++ b/src/Android/Avalonia.Android/AndroidPlatform.cs @@ -10,7 +10,6 @@ using Avalonia.Input.Platform; using Avalonia.OpenGL.Egl; using Avalonia.Platform; using Avalonia.Rendering; -using Avalonia.PlatformSupport; using Avalonia.Skia; namespace Avalonia @@ -20,9 +19,9 @@ namespace Avalonia public static T UseAndroid(this T builder) where T : AppBuilderBase, new() { var options = AvaloniaLocator.Current.GetService() ?? new AndroidPlatformOptions(); - builder.UseWindowingSubsystem(() => AndroidPlatform.Initialize(builder.ApplicationType, options), "Android"); - builder.UseSkia(); - return builder; + return builder + .UseWindowingSubsystem(() => AndroidPlatform.Initialize(options), "Android") + .UseSkia(); } } } @@ -44,7 +43,7 @@ namespace Avalonia.Android public TimeSpan DoubleClickTime => TimeSpan.FromMilliseconds(500); - public static void Initialize(Type appType, AndroidPlatformOptions options) + public static void Initialize(AndroidPlatformOptions options) { Options = options; diff --git a/src/Android/Avalonia.Android/AppBuilder.cs b/src/Android/Avalonia.Android/AppBuilder.cs deleted file mode 100644 index 04f1ff00d0..0000000000 --- a/src/Android/Avalonia.Android/AppBuilder.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Avalonia.Controls; -using Avalonia.PlatformSupport; - -namespace Avalonia -{ - public sealed class AppBuilder : AppBuilderBase - { - public AppBuilder() : base(new StandardRuntimePlatform(), - builder => StandardRuntimePlatformServices.Register(builder.Instance?.GetType()?.Assembly)) - { - - } - } -} diff --git a/src/Android/Avalonia.Android/Avalonia.Android.csproj b/src/Android/Avalonia.Android/Avalonia.Android.csproj index 5c33dbcea6..56a7c78048 100644 --- a/src/Android/Avalonia.Android/Avalonia.Android.csproj +++ b/src/Android/Avalonia.Android/Avalonia.Android.csproj @@ -1,15 +1,11 @@ - + - monoandroid11.0 + net6.0-android + 21 true - - - TargetFramework=netstandard2.0 - + - - diff --git a/src/Android/Avalonia.AndroidTestApplication/Assets/AboutAssets.txt b/src/Android/Avalonia.AndroidTestApplication/Assets/AboutAssets.txt deleted file mode 100644 index ee39886295..0000000000 --- a/src/Android/Avalonia.AndroidTestApplication/Assets/AboutAssets.txt +++ /dev/null @@ -1,19 +0,0 @@ -Any raw assets you want to be deployed with your application can be placed in -this directory (and child directories) and given a Build Action of "AndroidAsset". - -These files will be deployed with you package and will be accessible using Android's -AssetManager, like this: - -public class ReadAsset : Activity -{ - protected override void OnCreate (Bundle bundle) - { - base.OnCreate (bundle); - - InputStream input = Assets.Open ("my_asset.txt"); - } -} - -Additionally, some Android functions will automatically load asset files: - -Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); \ No newline at end of file diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj index 9104f1618c..1cf732d76f 100644 --- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj +++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj @@ -1,153 +1,28 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {FF69B927-C545-49AE-8E16-3D14D621AA12} - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Properties - Avalonia.AndroidTestApplication - Avalonia.AndroidTestApplication - 512 - true - Resources\Resource.Designer.cs - Off - False - v11.0 - Properties\AndroidManifest.xml + net6.0-android + 21 + Exe + enable + com.Avalonia.AndroidTestApplication + 1 + 1.0 + apk - + + True - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - True - None - True - False - False - armeabi-v7a;x86 - Xamarin - False - True - False - False - False + True + True + - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - False - Full - True - False - False - armeabi-v7a,x86 - Xamarin - False - False - False - False - False - False - - - - - - - - - - - - - - - - - - - - - - Designer - - - - - + - + + - - {7b92af71-6287-4693-9dcb-bd5b6e927e23} - Avalonia.Android - - - {3e53a01a-b331-47f3-b828-4a5717e77a24} - Avalonia.Markup.Xaml - - - {d211e587-d8bc-45b9-95a4-f297c8fa5200} - Avalonia.Animation - - - {b09b78d8-9b26-48b0-9149-d64a2f120f3f} - Avalonia.Base - - - {d2221c82-4a25-4583-9b43-d791e3f6820c} - Avalonia.Controls - - - {7062ae20-5dcc-4442-9645-8195bdece63e} - Avalonia.Diagnostics - - - {62024b2d-53eb-4638-b26b-85eeaa54866e} - Avalonia.Input - - - {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b} - Avalonia.Interactivity - - - {42472427-4774-4c81-8aff-9f27b8e31721} - Avalonia.Layout - - - {eb582467-6abb-43a1-b052-e981ba910e3a} - Avalonia.Visuals - - - {f1baa01a-f176-4c6a-b39d-5b40bb1b148f} - Avalonia.Styling - - - {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f} - Avalonia.Themes.Default - - - {7d2d3083-71dd-4cc9-8907-39a0d86fb322} - Avalonia.Skia - + + - - - - - - diff --git a/src/Android/Avalonia.AndroidTestApplication/Properties/AndroidManifest.xml b/src/Android/Avalonia.AndroidTestApplication/Properties/AndroidManifest.xml index 57ee503005..ad8134f628 100644 --- a/src/Android/Avalonia.AndroidTestApplication/Properties/AndroidManifest.xml +++ b/src/Android/Avalonia.AndroidTestApplication/Properties/AndroidManifest.xml @@ -1,6 +1,4 @@  - - + - - \ No newline at end of file + diff --git a/src/Android/Avalonia.AndroidTestApplication/Properties/AssemblyInfo.cs b/src/Android/Avalonia.AndroidTestApplication/Properties/AssemblyInfo.cs deleted file mode 100644 index 2528202974..0000000000 --- a/src/Android/Avalonia.AndroidTestApplication/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. - -[assembly: AssemblyTitle("Avalonia.AndroidTestApplication")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Avalonia.AndroidTestApplication")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs b/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs deleted file mode 100644 index 87fd47df25..0000000000 --- a/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs +++ /dev/null @@ -1,79 +0,0 @@ -#pragma warning disable 1591 -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -[assembly: global::Android.Runtime.ResourceDesignerAttribute("Avalonia.AndroidTestApplication.Resource", IsApplication=true)] - -namespace Avalonia.AndroidTestApplication -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.1.99.62")] - public partial class Resource - { - - static Resource() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - public static void UpdateIdValues() - { - } - - public partial class Attribute - { - - static Attribute() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Attribute() - { - } - } - - public partial class Drawable - { - - // aapt resource value: 0x7F010000 - public const int Icon = 2130771968; - - static Drawable() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Drawable() - { - } - } - - public partial class String - { - - // aapt resource value: 0x7F020000 - public const int ApplicationName = 2130837504; - - // aapt resource value: 0x7F020001 - public const int Hello = 2130837505; - - static String() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private String() - { - } - } - } -} -#pragma warning restore 1591 diff --git a/src/Android/Avalonia.AndroidTestApplication/app.config b/src/Android/Avalonia.AndroidTestApplication/app.config deleted file mode 100644 index fc064cedfb..0000000000 --- a/src/Android/Avalonia.AndroidTestApplication/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file From 9ba05ec921c9b48c136f09b2d357d5bd670d6868 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Wed, 2 Feb 2022 20:20:31 -0500 Subject: [PATCH 02/12] Install android workload --- azure-pipelines.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 40669f4f53..36af740c53 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -146,6 +146,12 @@ jobs: inputs: version: 6.0.100 + - task: CmdLine@2 + displayName: 'Install Androi Workload' + inputs: + script: | + dotnet workload install android + - task: CmdLine@2 displayName: 'Install Nuke' inputs: From 9c8074d46c790c09bd8795517575c301156526ec Mon Sep 17 00:00:00 2001 From: Max Katz Date: Wed, 2 Feb 2022 20:58:26 -0500 Subject: [PATCH 03/12] Enable android nuget build --- dirs.proj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dirs.proj b/dirs.proj index 594f2c22d3..a356a8fc6d 100644 --- a/dirs.proj +++ b/dirs.proj @@ -9,11 +9,6 @@ - - - - - @@ -23,6 +18,11 @@ + + + + + From 6a968ecf8676594f76832e9cd3e07518b21afaae Mon Sep 17 00:00:00 2001 From: Max Katz Date: Wed, 2 Feb 2022 21:42:27 -0500 Subject: [PATCH 04/12] Add more dotnet info output --- nukebuild/Build.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs index f0b894b596..327ab72d8b 100644 --- a/nukebuild/Build.cs +++ b/nukebuild/Build.cs @@ -87,7 +87,8 @@ partial class Build : NukeBuild Console.WriteLine(preamble); Process.Start(new ProcessStartInfo(command, args) {UseShellExecute = false}).WaitForExit(); } - ExecWait("dotnet version:", "dotnet", "--version"); + ExecWait("dotnet version:", "dotnet", "--info"); + ExecWait("dotnet workloads:", "dotnet", "workload list"); } IReadOnlyCollection MsBuildCommon( From 015d3e5197185c3404605d21a611913c3220a61f Mon Sep 17 00:00:00 2001 From: Max Katz Date: Thu, 10 Feb 2022 02:29:31 -0500 Subject: [PATCH 05/12] Update workload installation command --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 36af740c53..6a1eb1f99a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -150,7 +150,7 @@ jobs: displayName: 'Install Androi Workload' inputs: script: | - dotnet workload install android + dotnet workload install --no-cache --disable-parallel ios android --skip-manifest-update --source "https://pkgs.dev.azure.com/xamarin/public/_packaging/maui-main/nuget/v3/index.json" --source "https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" --source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" --source "https://api.nuget.org/v3/index.json" - task: CmdLine@2 displayName: 'Install Nuke' From 636a25453a881182ea74bb44917447eedfe9e1d2 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Thu, 10 Feb 2022 02:31:55 -0500 Subject: [PATCH 06/12] Fix IsDotNetFramework --- src/Avalonia.PlatformSupport/StandardRuntimePlatform.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.PlatformSupport/StandardRuntimePlatform.cs b/src/Avalonia.PlatformSupport/StandardRuntimePlatform.cs index 768966ba2d..4eeb9232cf 100644 --- a/src/Avalonia.PlatformSupport/StandardRuntimePlatform.cs +++ b/src/Avalonia.PlatformSupport/StandardRuntimePlatform.cs @@ -201,7 +201,7 @@ namespace Avalonia.PlatformSupport #if NETCOREAPP IsCoreClr = true, #elif NETFRAMEWORK - IsDotNetFramework = false, + IsDotNetFramework = true, #endif IsDesktop = os == OperatingSystemType.Linux || os == OperatingSystemType.OSX || os == OperatingSystemType.WinNT, IsMono = os == OperatingSystemType.Android || os == OperatingSystemType.iOS || os == OperatingSystemType.Browser, From 7752759eb84948b6ac28050d9c7ce092e7501665 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 11 Feb 2022 02:04:55 -0500 Subject: [PATCH 07/12] Use JAVA_HOME_11_X64 SDK --- nukebuild/Build.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs index 327ab72d8b..72d90abbf3 100644 --- a/nukebuild/Build.cs +++ b/nukebuild/Build.cs @@ -100,7 +100,7 @@ partial class Build : NukeBuild // This is required for VS2019 image on Azure Pipelines .When(Parameters.IsRunningOnWindows && Parameters.IsRunningOnAzure, _ => _ - .AddProperty("JavaSdkDirectory", GetVariable("JAVA_HOME_8_X64"))) + .AddProperty("JavaSdkDirectory", GetVariable("JAVA_HOME_11_X64"))) .AddProperty("PackageVersion", Parameters.Version) .AddProperty("iOSRoslynPathHackRequired", true) .SetProcessToolPath(MsBuildExe.Value) From a568c175f3f01afffc492b483ebdf0f25aa26053 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 11 Feb 2022 02:05:10 -0500 Subject: [PATCH 08/12] Solve workload installation --- azure-pipelines.yml | 10 +++++----- .../ControlCatalog.Android.csproj | 2 +- samples/ControlCatalog.Web/ControlCatalog.Web.csproj | 1 + .../Avalonia.AndroidTestApplication.csproj | 2 +- src/Web/Avalonia.Web.Blazor/Avalonia.Web.Blazor.csproj | 1 + 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6a1eb1f99a..b3d7f9b39d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,6 +1,3 @@ -variables: - MSBuildEnableWorkloadResolver: 'false' - jobs: - job: GetPRNumber @@ -32,6 +29,8 @@ jobs: - job: Linux pool: vmImage: 'ubuntu-20.04' + variables: + MSBuildEnableWorkloadResolver: 'false' steps: - task: UseDotNet@2 displayName: 'Use .NET Core SDK 3.1.414' @@ -61,6 +60,7 @@ jobs: - job: macOS variables: SolutionDir: '$(Build.SourcesDirectory)' + MSBuildEnableWorkloadResolver: 'false' pool: vmImage: 'macOS-10.15' steps: @@ -147,10 +147,10 @@ jobs: version: 6.0.100 - task: CmdLine@2 - displayName: 'Install Androi Workload' + displayName: 'Install Workloads' inputs: script: | - dotnet workload install --no-cache --disable-parallel ios android --skip-manifest-update --source "https://pkgs.dev.azure.com/xamarin/public/_packaging/maui-main/nuget/v3/index.json" --source "https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json" --source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" --source "https://api.nuget.org/v3/index.json" + dotnet workload install android - task: CmdLine@2 displayName: 'Install Nuke' diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj index df68f784b8..22c2d066a8 100644 --- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj +++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj @@ -18,7 +18,7 @@ - + True True True diff --git a/samples/ControlCatalog.Web/ControlCatalog.Web.csproj b/samples/ControlCatalog.Web/ControlCatalog.Web.csproj index 199fa85ad2..520bbdf32b 100644 --- a/samples/ControlCatalog.Web/ControlCatalog.Web.csproj +++ b/samples/ControlCatalog.Web/ControlCatalog.Web.csproj @@ -1,6 +1,7 @@  net6.0 + false enable True diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj index 1cf732d76f..b540e2de2f 100644 --- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj +++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj @@ -10,7 +10,7 @@ apk - + True True True diff --git a/src/Web/Avalonia.Web.Blazor/Avalonia.Web.Blazor.csproj b/src/Web/Avalonia.Web.Blazor/Avalonia.Web.Blazor.csproj index cc604a9753..98fdccfe83 100644 --- a/src/Web/Avalonia.Web.Blazor/Avalonia.Web.Blazor.csproj +++ b/src/Web/Avalonia.Web.Blazor/Avalonia.Web.Blazor.csproj @@ -5,6 +5,7 @@ enable Avalonia.Web.Blazor preview + false true From 3637f60314b3977f42b70219b8e8883370ac0780 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 11 Feb 2022 02:05:21 -0500 Subject: [PATCH 09/12] Fix avalonia-base project reference --- src/Android/Avalonia.Android/Avalonia.Android.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Android/Avalonia.Android/Avalonia.Android.csproj b/src/Android/Avalonia.Android/Avalonia.Android.csproj index 56a7c78048..acf025810c 100644 --- a/src/Android/Avalonia.Android/Avalonia.Android.csproj +++ b/src/Android/Avalonia.Android/Avalonia.Android.csproj @@ -5,7 +5,7 @@ true - + From 1565263b24ea46c6a7e8d117a422081458a3d8c6 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 11 Feb 2022 21:37:05 -0500 Subject: [PATCH 10/12] Built Avalonia.Build.Tasks first and exclude android test projects from being built --- dirs.proj | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dirs.proj b/dirs.proj index a356a8fc6d..a25489b1c0 100644 --- a/dirs.proj +++ b/dirs.proj @@ -1,5 +1,7 @@ + + @@ -8,6 +10,8 @@ + + @@ -21,7 +25,6 @@ - From dcc7d02e18fd941d5f7501c30f3d0ed621ed61f0 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 11 Feb 2022 23:04:04 -0500 Subject: [PATCH 11/12] Move MSBuildEnableWorkloadResolver to directory build props --- Directory.Build.props | 1 + azure-pipelines.yml | 3 --- samples/ControlCatalog.Android/ControlCatalog.Android.csproj | 1 + src/Android/Avalonia.Android/Avalonia.Android.csproj | 1 + .../Avalonia.AndroidTestApplication.csproj | 1 + 5 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index c6610695c4..835decc672 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,5 +4,6 @@ $(MSBuildThisFileDirectory)\src\tools\Avalonia.Designer.HostApp\bin\$(Configuration)\netcoreapp2.0\Avalonia.Designer.HostApp.dll false + false diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b3d7f9b39d..ede5aec0e8 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -29,8 +29,6 @@ jobs: - job: Linux pool: vmImage: 'ubuntu-20.04' - variables: - MSBuildEnableWorkloadResolver: 'false' steps: - task: UseDotNet@2 displayName: 'Use .NET Core SDK 3.1.414' @@ -60,7 +58,6 @@ jobs: - job: macOS variables: SolutionDir: '$(Build.SourcesDirectory)' - MSBuildEnableWorkloadResolver: 'false' pool: vmImage: 'macOS-10.15' steps: diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj index 22c2d066a8..1654d20c80 100644 --- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj +++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj @@ -8,6 +8,7 @@ 1 1.0 apk + true diff --git a/src/Android/Avalonia.Android/Avalonia.Android.csproj b/src/Android/Avalonia.Android/Avalonia.Android.csproj index acf025810c..d6babe0361 100644 --- a/src/Android/Avalonia.Android/Avalonia.Android.csproj +++ b/src/Android/Avalonia.Android/Avalonia.Android.csproj @@ -3,6 +3,7 @@ net6.0-android 21 true + true diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj index b540e2de2f..f1e2379853 100644 --- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj +++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj @@ -8,6 +8,7 @@ 1 1.0 apk + true From f374ea374fde32930946a35f4a4ac7eb3b902817 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 11 Feb 2022 23:40:46 -0500 Subject: [PATCH 12/12] Add multitarget with old sdk --- Avalonia.sln | 2 +- dirs.proj | 2 +- global.json | 1 + src/Android/Avalonia.Android/Avalonia.Android.csproj | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Avalonia.sln b/Avalonia.sln index 80a8841862..f1bdfdbbc3 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -107,7 +107,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interop", "Interop", "{A0CC EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RenderDemo", "samples\RenderDemo\RenderDemo.csproj", "{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.Android", "samples\ControlCatalog.Android\ControlCatalog.Android.csproj", "{29132311-1848-4FD6-AE0C-4FF841151BD3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.Android", "samples\ControlCatalog.Android\ControlCatalog.Android.csproj", "{29132311-1848-4FD6-AE0C-4FF841151BD3}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia", "src\Skia\Avalonia.Skia\Avalonia.Skia.csproj", "{7D2D3083-71DD-4CC9-8907-39A0D86FB322}" EndProject diff --git a/dirs.proj b/dirs.proj index a25489b1c0..74d7b482cc 100644 --- a/dirs.proj +++ b/dirs.proj @@ -11,7 +11,7 @@ - + diff --git a/global.json b/global.json index b160e4561d..1f93ed27c3 100644 --- a/global.json +++ b/global.json @@ -4,6 +4,7 @@ }, "msbuild-sdks": { "Microsoft.Build.Traversal": "1.0.43", + "Xamarin.Legacy.Sdk": "0.1.2-alpha6", "MSBuild.Sdk.Extras": "3.0.22", "AggregatePackage.NuGet.Sdk" : "0.1.12" } diff --git a/src/Android/Avalonia.Android/Avalonia.Android.csproj b/src/Android/Avalonia.Android/Avalonia.Android.csproj index d6babe0361..b774938a1d 100644 --- a/src/Android/Avalonia.Android/Avalonia.Android.csproj +++ b/src/Android/Avalonia.Android/Avalonia.Android.csproj @@ -1,6 +1,6 @@ - + - net6.0-android + net6.0-android;monoandroid11.0 21 true true