diff --git a/Documentation/guides/messages/xa1039.md b/Documentation/guides/messages/xa1039.md new file mode 100644 index 00000000000..d3074292fd6 --- /dev/null +++ b/Documentation/guides/messages/xa1039.md @@ -0,0 +1,47 @@ +--- +title: Xamarin.Android error XA1039 +description: XA1039 error code +ms.date: 1/10/2024 +--- +# Xamarin.Android error XA1039 + +## Example messages + +``` +error XA1039: The Android Support libraries are not longer supported in .NET 9, please migrate to AndroidX. See https://aka.ms/xamarin/androidx for more details. +``` + +## Issue + +Outdated "Android Support Library" packages are no longer supported in .NET 9: + +* `Xamarin.Android.Arch.*` +* `Xamarin.Android.Support.*` + +The underlying Java libraries are no longer supported by Google since the final +28.0.0 release. See the [Android Support Library Documentation][support] for +details. + +Some example prefixes of the newer, supported AndroidX packages are: + +* `Xamarin.AndroidX.*` +* `Xamarin.AndroidX.Arch.*` + +For more information about the Android Support libraries or AndroidX, see: + +* [Android Support Library Documentation][support] +* [AndroidX Documentation](https://developer.android.com/jetpack/androidx) + +[support]: https://developer.android.com/topic/libraries/support-library/packages + +## Solution + +Remove all NuGet package references to `Xamarin.Android.Support` or +`Xamarin.Android.Arch` in favor of the new AndroidX equivalents. + +This also can occur if you are using a NuGet package with a transitive +dependency on the Android support packages. In this case, you will need to +remove the package or contact the package author. + +See the [AndroidX migration documentation](https://aka.ms/xamarin/androidx) for +details. diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx index 524a3f1fe3c..ae7fad2dc39 100644 --- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx +++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx @@ -1006,4 +1006,9 @@ To use a custom JDK path for a command line build, set the 'JavaSdkDirectory' MS {0} - The deprecated MSBuild property name {1} - The numeric version of .NET + + The Android Support libraries are no longer supported in .NET {0}, please migrate to AndroidX. See https://aka.ms/xamarin/androidx for more details. + The following are literal names and should not be translated: Android Support, AndroidX, .NET. +{0} - The numeric version of .NET + \ No newline at end of file diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs index f73f76da2a7..44fd9c2c3fd 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs @@ -138,23 +138,17 @@ public void DesignTimeBuild ([Values(false, true)] bool isRelease, [Values (fals } [Test] - public void CheckEmbeddedSupportLibraryResources () + public void CheckEmbeddedAndroidXResources () { var proj = new XamarinAndroidApplicationProject () { IsRelease = true, PackageReferences = { - KnownPackages.SupportMediaCompat_27_0_2_1, - KnownPackages.SupportFragment_27_0_2_1, - KnownPackages.SupportCoreUtils_27_0_2_1, - KnownPackages.SupportCoreUI_27_0_2_1, - KnownPackages.SupportCompat_27_0_2_1, - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportV7AppCompat_27_0_2_1, + KnownPackages.AndroidXAppCompat }, }; using (var b = CreateApkBuilder ()) { Assert.IsTrue (b.Build (proj), "First build should have succeeded."); - var Rdrawable = b.Output.GetIntermediaryPath (Path.Combine ("android", "bin", "classes", "android", "support", "v7", "appcompat", "R$drawable.class")); + var Rdrawable = b.Output.GetIntermediaryPath (Path.Combine ("android", "bin", "classes", "androidx", "appcompat", "R$drawable.class")); Assert.IsTrue (File.Exists (Rdrawable), $"{Rdrawable} should exist"); } } @@ -410,8 +404,7 @@ protected override void OnClick() } }" }); - proj.PackageReferences.Add (KnownPackages.AndroidSupportV4_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportV7AppCompat_27_0_2_1); + proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); using (var libb = CreateDllBuilder (Path.Combine (projectPath, lib.ProjectName), cleanupOnDispose: false)) using (var b = CreateApkBuilder (Path.Combine (projectPath, proj.ProjectName), cleanupOnDispose: false)) { Assert.IsTrue (libb.Build (lib), "Library Build should have succeeded."); @@ -830,11 +823,7 @@ public void CheckFilesAreRemoved () { ", } - }, - PackageReferences = { - KnownPackages.SupportV7AppCompat_27_0_2_1, - KnownPackages.AndroidSupportV4_27_0_2_1, - }, + } }; using (var builder = CreateApkBuilder ()) { Assert.IsTrue (builder.Build (proj), "Build should have succeeded"); @@ -1033,13 +1022,7 @@ public void BuildAppWithManagedResourceParserAndLibraries () new BuildItem.ProjectReference (@"..\Lib1\Lib1.csproj", libProj.ProjectName, libProj.ProjectGuid), }, PackageReferences = { - KnownPackages.SupportMediaCompat_27_0_2_1, - KnownPackages.SupportFragment_27_0_2_1, - KnownPackages.SupportCoreUtils_27_0_2_1, - KnownPackages.SupportCoreUI_27_0_2_1, - KnownPackages.SupportCompat_27_0_2_1, - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportV7AppCompat_27_0_2_1, + KnownPackages.AndroidXAppCompat }, }; appProj.SetProperty ("AndroidUseManagedDesignTimeResourceGenerator", "True"); @@ -1224,20 +1207,7 @@ public void CustomViewAddResourceId () { var proj = new XamarinAndroidApplicationProject (); proj.LayoutMain = proj.LayoutMain.Replace ("", ""); - proj.PackageReferences.Add (KnownPackages.Android_Arch_Core_Common_26_1_0); - proj.PackageReferences.Add (KnownPackages.Android_Arch_Lifecycle_Common_26_1_0); - proj.PackageReferences.Add (KnownPackages.Android_Arch_Lifecycle_Runtime_26_1_0); - proj.PackageReferences.Add (KnownPackages.AndroidSupportV4_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportCompat_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportCoreUI_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportCoreUtils_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportDesign_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportFragment_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportMediaCompat_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportV7AppCompat_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportV7CardView_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportV7MediaRouter_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportV7RecyclerView_27_0_2_1); + proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { Assert.IsTrue (b.Build (proj), "first build should have succeeded"); @@ -1257,7 +1227,7 @@ public void CustomViewAddResourceId () var r_java = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath, "android", "src", proj.PackageNameJavaIntermediatePath, "R.java"); FileAssert.Exists (r_java); var r_java_contents = File.ReadAllLines (r_java); - Assert.IsTrue (StringAssertEx.ContainsText (r_java_contents, textView1), $"android/support/compat/R.java should contain `{textView1}`!"); + Assert.IsTrue (StringAssertEx.ContainsText (r_java_contents, textView1), $"{r_java} should contain `{textView1}`!"); } } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs index 860c845eb67..66a14fe783b 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs @@ -167,7 +167,6 @@ public void BuildAarBindigLibraryWithNuGetPackageOfJar (string classParser) var proj = new XamarinAndroidBindingProject () { IsRelease = true, }; - proj.PackageReferences.Add (KnownPackages.AndroidSupportV4_27_0_2_1); proj.Jars.Add (new AndroidItem.LibraryProjectZip ("Jars\\android-crop-1.0.1.aar") { WebContent = "https://repo1.maven.org/maven2/com/soundcloud/android/android-crop/1.0.1/android-crop-1.0.1.aar" }); @@ -187,13 +186,12 @@ public void BuildAarBindigLibraryWithNuGetPackageOfJar (string classParser) [Test] [TestCaseSource (nameof (ClassParseOptions))] [NonParallelizable] - public void BuildLibraryZipBindigLibraryWithAarOfJar (string classParser) + public void BuildLibraryZipBindingLibraryWithAarOfJar (string classParser) { var proj = new XamarinAndroidBindingProject () { IsRelease = true, }; proj.AndroidClassParser = classParser; - proj.PackageReferences.Add (KnownPackages.AndroidSupportV4_27_0_2_1); proj.Jars.Add (new AndroidItem.LibraryProjectZip ("Jars\\aFileChooserBinaries.zip") { WebContentFileNameFromAzure = "aFileChooserBinaries.zip" }); @@ -202,41 +200,6 @@ public void BuildLibraryZipBindigLibraryWithAarOfJar (string classParser) Java.Lang.Object LoadInBackgroundImpl "; - proj.Sources.Add (new BuildItem (BuildActions.Compile, "Fixup.cs") { - TextContent = () => @"using System; -using System.Collections.Generic; -using Android.App; -using Android.Runtime; - -namespace Com.Ipaulpro.Afilechooser { - [Activity (Name = ""com.ipaulpro.afilechooser.FileChooserActivity"", - Icon = ""@drawable/ic_chooser"", - Exported = true)] - [IntentFilter (new string [] {""android.intent.action.GET_CONTENT""}, - Categories = new string [] { - ""android.intent.category.DEFAULT"", - //""android.intent.category.OPENABLE"" - }, - DataMimeType = ""*/*"")] - public partial class FileChooserActivity - { - } - - public partial class FileListFragment : global::Android.Support.V4.App.ListFragment, global::Android.Support.V4.App.LoaderManager.ILoaderCallbacks { - - public void OnLoadFinished (global::Android.Support.V4.Content.Loader p0, Java.Lang.Object p1) - { - OnLoadFinished (p0, (IList) new JavaList (p1.Handle, JniHandleOwnership.DoNotTransfer)); - } - } - public partial class FileLoader : Android.Support.V4.Content.AsyncTaskLoader { - public override Java.Lang.Object LoadInBackground () - { - return (Java.Lang.Object) LoadInBackgroundImpl (); - } - } -}" - }); using (var b = CreateDllBuilder ()) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); } @@ -467,7 +430,6 @@ public void RemoveEventHandlerResolution () Xamarin.ActionbarSherlockBinding.Views ", }; - binding.PackageReferences.Add (KnownPackages.AndroidSupportV4_27_0_2_1); using (var bindingBuilder = CreateDllBuilder (Path.Combine ("temp", "RemoveEventHandlerResolution", "Binding"))) { Assert.IsTrue (bindingBuilder.Build (binding), "binding build should have succeeded"); } 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 f0819191393..d362fae07c1 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 @@ -243,17 +243,9 @@ public void CheckAssemblyCounts (bool isRelease, bool aot) EmbedAssembliesIntoApk = true, AotAssemblies = aot, }; - proj.PackageReferences.Add (KnownPackages.AndroidXMigration); - proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); - proj.PackageReferences.Add (KnownPackages.AndroidXAppCompatResources); - proj.PackageReferences.Add (KnownPackages.AndroidXBrowser); - proj.PackageReferences.Add (KnownPackages.AndroidXMediaRouter); - proj.PackageReferences.Add (KnownPackages.AndroidXLegacySupportV4); - proj.PackageReferences.Add (KnownPackages.AndroidXLifecycleLiveData); - proj.PackageReferences.Add (KnownPackages.XamarinGoogleAndroidMaterial); var abis = new [] { "armeabi-v7a", "x86" }; - proj.SetAndroidSupportedAbis (abis); + proj.SetRuntimeIdentifiers (abis); proj.SetProperty (proj.ActiveConfigurationProperties, "AndroidUseAssemblyStore", "True"); using (var b = CreateApkBuilder ()) { @@ -292,10 +284,6 @@ public void SmokeTestBuildWithSpecialCharacters ([Values (false, true)] bool for proj.IsRelease = true; proj.AotAssemblies = aot; - if (forms) { - proj.PackageReferences.Clear (); - proj.PackageReferences.Add (KnownPackages.XamarinForms_4_7_0_1142); - } using (var builder = CreateApkBuilder (Path.Combine (rootPath, proj.ProjectName))){ Assert.IsTrue (builder.Build (proj), "Build should have succeeded."); } @@ -445,26 +433,6 @@ public void ApplicationIdPlaceholder () } } - [Test] - [Category ("XamarinBuildDownload")] - public void ExtraAaptManifest () - { - var proj = new XamarinAndroidApplicationProject (); - proj.MainActivity = proj.DefaultMainActivity.Replace ("base.OnCreate (bundle);", "base.OnCreate (bundle);\nCrashlytics.Crashlytics.HandleManagedExceptions();"); - proj.PackageReferences.Add (KnownPackages.Xamarin_Android_Crashlytics); - proj.PackageReferences.Add (KnownPackages.Xamarin_Android_Fabric); - proj.PackageReferences.Add (KnownPackages.Xamarin_Build_Download); - using (var builder = CreateApkBuilder (Path.Combine ("temp", TestName))) { - builder.Target = "Restore"; - Assert.IsTrue (builder.Build (proj), "Restore should have succeeded."); - builder.Target = "Build"; - Assert.IsTrue (builder.Build (proj), "Build should have succeeded."); - var manifest = File.ReadAllText (Path.Combine (Root, builder.ProjectDirectory, "obj", "Debug", "android", "AndroidManifest.xml")); - Assert.IsTrue (manifest.Contains ($"android:authorities=\"{proj.PackageName}.crashlyticsinitprovider\""), "placeholder not replaced"); - Assert.IsFalse (manifest.Contains ("dollar_openBracket_applicationId_closeBracket"), "`aapt/AndroidManifest.xml` not ignored"); - } - } - [Test] public void AarContentExtraction () { @@ -714,7 +682,10 @@ public void BuildAfterUpgradingNuget () var proj = new XamarinAndroidApplicationProject (); proj.MainActivity = proj.DefaultMainActivity.Replace ("public class MainActivity : Activity", "public class MainActivity : AndroidX.AppCompat.App.AppCompatActivity"); - proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); + proj.PackageReferences.Add (new Package { + Id = "Xamarin.AndroidX.AppCompat", + Version = "1.6.1.5", + }); using (var b = CreateApkBuilder (Path.Combine ("temp", TestContext.CurrentContext.Test.Name))) { //[TearDown] will still delete if test outcome successful, I need logs if assertions fail but build passes @@ -732,8 +703,8 @@ public void BuildAfterUpgradingNuget () FileAssert.Exists (build_props, "build.props should exist after first build."); proj.PackageReferences.Clear (); - //NOTE: we can get all the other dependencies transitively, yay! - proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat_1_6_0_1); + //NOTE: this should be newer than specified above + proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); b.Save (proj, doNotCleanupOnUpdate: true); Assert.IsTrue (b.Build (proj), "second build should have succeeded."); Assert.IsFalse (b.Output.IsTargetSkipped ("_CleanIntermediateIfNeeded"), "`_CleanIntermediateIfNeeded` should have run for the second build!"); @@ -1165,6 +1136,7 @@ public MyWorker (Context c, WorkerParameters p) : base (c, p) { } " }); proj.PackageReferences.Add (KnownPackages.AndroidXWorkRuntime); + proj.PackageReferences.Add (KnownPackages.AndroidXLifecycleLiveData); using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); } @@ -1438,8 +1410,7 @@ public void CheckLintErrorsAndWarnings () var proj = new XamarinAndroidApplicationProject () { PackageReferences = { - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportConstraintLayout_1_0_2_2, + KnownPackages.AndroidXConstraintLayout }, }; proj.SetProperty ("AndroidLintEnabled", true.ToString ()); @@ -1623,8 +1594,7 @@ public void CheckLintResourceFileReferencesAreFixed () { var proj = new XamarinAndroidApplicationProject () { PackageReferences = { - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportConstraintLayout_1_0_2_2, + KnownPackages.AndroidXConstraintLayout }, }; proj.SetProperty ("AndroidLintEnabled", true.ToString ()); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs index 74375280c3b..e3050b3fb88 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs @@ -147,11 +147,6 @@ public void BuildReleaseArm64 ([Values (false, true)] bool forms) proj.SetProperty ("LinkerDumpDependencies", "True"); proj.SetProperty ("AndroidUseAssemblyStore", "False"); - if (forms) { - proj.PackageReferences.Clear (); - proj.PackageReferences.Add (KnownPackages.XamarinForms_5_0_0_2515); - } - byte [] apkDescData; var flavor = (forms ? "XForms" : "Simple") + "DotNet"; var apkDescFilename = $"BuildReleaseArm64{flavor}.apkdesc"; @@ -236,6 +231,7 @@ public void BuildHasNoWarnings (bool isRelease, bool xamarinForms, bool multidex var proj = xamarinForms ? new XamarinFormsAndroidApplicationProject () : new XamarinAndroidApplicationProject (); + proj.IsRelease = isRelease; if (multidex) { proj.SetProperty ("AndroidEnableMultiDex", "True"); } @@ -244,7 +240,9 @@ public void BuildHasNoWarnings (bool isRelease, bool xamarinForms, bool multidex // XA0119: Using Fast Deployment and Android App Bundles at the same time is not recommended. proj.EmbedAssembliesIntoApk = true; } - proj.PackageReferences.Add (new Package { Id = "BenchmarkDotNet", Version = "0.13.1" }); + // FIXME: Precompiling failed for TraceReloggerLib.dll, Dia2Lib.dll with exit code 1 + if (!isRelease) + proj.PackageReferences.Add (new Package { Id = "BenchmarkDotNet", Version = "0.13.1" }); proj.SetProperty ("XamarinAndroidSupportSkipVerifyVersions", "True"); // Disables API 29 warning in Xamarin.Build.Download proj.SetProperty ("AndroidPackageFormat", packageFormat); using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { @@ -353,71 +351,21 @@ public void BuildBasicApplicationAppCompat () { var proj = new XamarinAndroidApplicationProject (); var packages = proj.PackageReferences; - packages.Add (KnownPackages.SupportV7AppCompat_27_0_2_1); - proj.MainActivity = proj.DefaultMainActivity.Replace ("public class MainActivity : Activity", "public class MainActivity : Android.Support.V7.App.AppCompatActivity"); + packages.Add (KnownPackages.AndroidXAppCompat); + proj.MainActivity = proj.DefaultMainActivity.Replace ("public class MainActivity : Activity", "public class MainActivity : AndroidX.AppCompat.App.AppCompatActivity"); using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); } } - [Test] - [NonParallelizable] - public void AndroidXMigration ([Values (true, false)] bool isRelease) - { - var proj = new XamarinFormsAndroidApplicationProject { - IsRelease = isRelease, - }; - proj.PackageReferences.Add (KnownPackages.AndroidXMigration); - proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); - proj.PackageReferences.Add (KnownPackages.AndroidXAppCompatResources); - proj.PackageReferences.Add (KnownPackages.AndroidXBrowser); - proj.PackageReferences.Add (KnownPackages.AndroidXMediaRouter); - proj.PackageReferences.Add (KnownPackages.AndroidXLegacySupportV4); - proj.PackageReferences.Add (KnownPackages.AndroidXLifecycleLiveData); - proj.PackageReferences.Add (KnownPackages.XamarinGoogleAndroidMaterial); - - using (var b = CreateApkBuilder ()) { - Assert.IsTrue (b.Build (proj), "Build should have succeeded."); - var dexFile = b.Output.GetIntermediaryPath (Path.Combine ("android", "bin", "classes.dex")); - FileAssert.Exists (dexFile); - // classes.dex should only have the androidx Java types - var className = "Landroidx/appcompat/app/AppCompatActivity;"; - Assert.IsTrue (DexUtils.ContainsClass (className, dexFile, AndroidSdkPath), $"`{dexFile}` should include `{className}`!"); - className = "Landroid/appcompat/app/AppCompatActivity;"; - Assert.IsFalse (DexUtils.ContainsClass (className, dexFile, AndroidSdkPath), $"`{dexFile}` should *not* include `{className}`!"); - // FormsAppCompatActivity should inherit the AndroidX C# type - var forms = GetLinkedPath (b, isRelease, "Xamarin.Forms.Platform.Android.dll"); - using (var assembly = AssemblyDefinition.ReadAssembly (forms)) { - var activity = assembly.MainModule.GetType ("Xamarin.Forms.Platform.Android.FormsAppCompatActivity"); - Assert.AreEqual ("AndroidX.AppCompat.App.AppCompatActivity", activity.BaseType.FullName); - } - } - } - [Test] public void DuplicateRJavaOutput () { var proj = new XamarinAndroidApplicationProject { PackageReferences = { - new Package { Id = "Xamarin.Android.Support.Annotations", Version = "28.0.0.3" }, - new Package { Id = "Xamarin.Android.Support.Compat", Version = "28.0.0.3" }, - new Package { Id = "Xamarin.Android.Support.Core.UI", Version = "28.0.0.3" }, - new Package { Id = "Xamarin.Android.Support.Core.Utils", Version = "28.0.0.3" }, - new Package { Id = "Xamarin.Android.Support.Design", Version = "28.0.0.3" }, - new Package { Id = "Xamarin.Android.Support.Fragment", Version = "28.0.0.3" }, - new Package { Id = "Xamarin.Android.Support.VersionedParcelable", Version = "28.0.0.3" }, - new Package { Id = "Xamarin.Android.Support.v4", Version = "28.0.0.3" }, - new Package { Id = "Xamarin.Build.Download", Version = "0.7.1" }, - new Package { Id = "Xamarin.Essentials", Version = "1.3.1" }, - new Package { Id = "Xamarin.GooglePlayServices.Ads.Identifier", Version = "71.1600.0" }, - new Package { Id = "Xamarin.GooglePlayServices.Base", Version = "71.1610.0" }, - new Package { Id = "Xamarin.GooglePlayServices.Basement", Version = "71.1620.0" }, - new Package { Id = "Xamarin.GooglePlayServices.Clearcut", Version = "71.1600.0" }, - new Package { Id = "Xamarin.GooglePlayServices.Measurement.Api", Version = "71.1630.0" }, - new Package { Id = "Xamarin.GooglePlayServices.Measurement.Base", Version = "71.1630.0" }, - new Package { Id = "Xamarin.GooglePlayServices.Phenotype", Version = "71.1600.0" }, - new Package { Id = "Xamarin.GooglePlayServices.Stats", Version = "71.1601.0" }, - new Package { Id = "Xamarin.GooglePlayServices.Tasks", Version = "71.1601.0" }, + new Package { Id = "Xamarin.GooglePlayServices.Base", Version = "118.2.0.5" }, + new Package { Id = "Xamarin.GooglePlayServices.Basement", Version = "118.2.0.5" }, + new Package { Id = "Xamarin.GooglePlayServices.Tasks", Version = "118.0.2.6" }, } }; using (var b = CreateApkBuilder ()) { @@ -983,35 +931,25 @@ public void CSharp8Features ([Values (true, false)] bool bindingProject) static readonly object [] BuildProguardEnabledProjectSource = new object [] { new object [] { - /* isRelease */ false, - /* linkTool */ "", - /* rid */ "", - }, - new object [] { - /* isRelease */ true, - /* linkTool */ "r8", /* rid */ "", }, new object [] { - /* isRelease */ true, - /* linkTool */ "r8", /* rid */ "android-arm64", }, }; [Test] [TestCaseSource (nameof (BuildProguardEnabledProjectSource))] - [NonParallelizable] // On MacOS, parallel /restore causes issues - public void BuildProguardEnabledProject (bool isRelease, string linkTool, string rid) + public void BuildProguardEnabledProject (string rid) { var proj = new XamarinFormsAndroidApplicationProject { - IsRelease = isRelease, - LinkTool = linkTool, + IsRelease = true, + LinkTool = "r8", }; if (!string.IsNullOrEmpty (rid)) { proj.SetProperty ("RuntimeIdentifier", rid); } - using (var b = CreateApkBuilder (Path.Combine ("temp", $"BuildProguard Enabled(1){isRelease}{linkTool}{rid}"))) { + using (var b = CreateApkBuilder (Path.Combine ("temp", $"BuildProguard Enabled(1){rid}"))) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); // warning XA4304: ProGuard configuration file 'XYZ' was not found. StringAssertEx.DoesNotContain ("XA4304", b.LastBuildOutput, "Output should *not* contain XA4304 warnings"); @@ -1022,18 +960,16 @@ public void BuildProguardEnabledProject (bool isRelease, string linkTool, string } var toolbar_class = "androidx.appcompat.widget.Toolbar"; - if (isRelease && !string.IsNullOrEmpty (linkTool)) { - var proguardProjectPrimary = Path.Combine (intermediate, "proguard", "proguard_project_primary.cfg"); - FileAssert.Exists (proguardProjectPrimary); - Assert.IsTrue (StringAssertEx.ContainsText (File.ReadAllLines (proguardProjectPrimary), $"-keep class {proj.JavaPackageName}.MainActivity"), $"`{proj.JavaPackageName}.MainActivity` should exist in `proguard_project_primary.cfg`!"); - - var aapt_rules = Path.Combine (intermediate, "aapt_rules.txt"); - FileAssert.Exists (aapt_rules); - var lines = File.ReadAllLines (aapt_rules); - Assert.IsTrue (StringAssertEx.ContainsText (lines, $"-keep class {toolbar_class}"), $"`{toolbar_class}` should exist in `{aapt_rules}`!"); - var activity_class = $"{proj.PackageName}.MainActivity"; - Assert.IsTrue (StringAssertEx.ContainsText (lines, $"-keep class {activity_class}"), $"`{activity_class}` should exist in `{aapt_rules}`!"); - } + var proguardProjectPrimary = Path.Combine (intermediate, "proguard", "proguard_project_primary.cfg"); + FileAssert.Exists (proguardProjectPrimary); + Assert.IsTrue (StringAssertEx.ContainsText (File.ReadAllLines (proguardProjectPrimary), $"-keep class {proj.JavaPackageName}.MainActivity"), $"`{proj.JavaPackageName}.MainActivity` should exist in `proguard_project_primary.cfg`!"); + + var aapt_rules = Path.Combine (intermediate, "aapt_rules.txt"); + FileAssert.Exists (aapt_rules); + var lines = File.ReadAllLines (aapt_rules); + Assert.IsTrue (StringAssertEx.ContainsText (lines, $"-keep class {toolbar_class}"), $"`{toolbar_class}` should exist in `{aapt_rules}`!"); + var activity_class = $"{proj.PackageName}.MainActivity"; + Assert.IsTrue (StringAssertEx.ContainsText (lines, $"-keep class {activity_class}"), $"`{activity_class}` should exist in `{aapt_rules}`!"); var dexFile = Path.Combine (intermediate, "android", "bin", "classes.dex"); FileAssert.Exists (dexFile); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildWithLibraryTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildWithLibraryTests.cs index c676d57e1a5..e1083a3cef2 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildWithLibraryTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildWithLibraryTests.cs @@ -350,6 +350,9 @@ public void BuildWithNativeLibraries ([Values (true, false)] bool isRelease) BinaryContent = () => new byte[10], MetadataValues = "Link=libs\\x86\\libtest.so", }, + new AndroidItem.AndroidNativeLibrary ("armeabi-v7a\\libRSSupport.so") { + BinaryContent = () => new byte[10], + }, }, }; var dll2 = new XamarinAndroidLibraryProject () { @@ -379,12 +382,9 @@ public void BuildWithNativeLibraries ([Values (true, false)] bool isRelease) new AndroidItem.AndroidNativeLibrary ("armeabi-v7a\\libRSSupport.so") { BinaryContent = () => new byte[10], }, - }, - PackageReferences = { - KnownPackages.Xamarin_Android_Support_v8_RenderScript_28_0_0_3, } }; - proj.SetAndroidSupportedAbis ("armeabi-v7a", "x86"); + proj.SetRuntimeIdentifiers (["armeabi-v7a", "x86"]); var path = Path.Combine (Root, "temp", string.Format ("BuildWithNativeLibraries_{0}", isRelease)); using (var b1 = CreateDllBuilder (Path.Combine (path, dll2.ProjectName))) { Assert.IsTrue (b1.Build (dll2), "Build should have succeeded."); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/DesignerTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/DesignerTests.cs index 236c5c574af..50a90784a83 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/DesignerTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/DesignerTests.cs @@ -31,16 +31,7 @@ public void CustomDesignerTargetSetupDependenciesForDesigner () }, }, }; - var proj = new XamarinAndroidApplicationProject () { - PackageReferences = { - KnownPackages.SupportMediaCompat_27_0_2_1, - KnownPackages.SupportFragment_27_0_2_1, - KnownPackages.SupportCoreUtils_27_0_2_1, - KnownPackages.SupportCoreUI_27_0_2_1, - KnownPackages.SupportCompat_27_0_2_1, - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportV7AppCompat_27_0_2_1, - }, + var proj = new XamarinFormsAndroidApplicationProject () { References = { new BuildItem ("ProjectReference", "..\\Library1\\Library1.csproj") }, Imports = { new Import ("foo.targets") { @@ -152,7 +143,7 @@ public void IncrementalDesignTimeBuild () var resourcepathscache = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath, "designtime", "libraryprojectimports.cache"); FileAssert.Exists (resourcepathscache); var doc = XDocument.Load (resourcepathscache); - Assert.AreEqual (37, doc.Root.Element ("Jars").Elements ("Jar").Count (), "libraryprojectimports.cache did not contain expected jar files"); + Assert.AreEqual (54, doc.Root.Element ("Jars").Elements ("Jar").Count (), "libraryprojectimports.cache did not contain expected jar files"); } } @@ -212,17 +203,7 @@ public void IncrementalFullBuild () public void GetExtraLibraryLocationsForDesigner () { var target = "GetExtraLibraryLocationsForDesigner"; - var proj = new XamarinAndroidApplicationProject () { - PackageReferences = { - KnownPackages.SupportMediaCompat_27_0_2_1, - KnownPackages.SupportFragment_27_0_2_1, - KnownPackages.SupportCoreUtils_27_0_2_1, - KnownPackages.SupportCoreUI_27_0_2_1, - KnownPackages.SupportCompat_27_0_2_1, - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportV7AppCompat_27_0_2_1, - }, - }; + var proj = new XamarinFormsAndroidApplicationProject (); string jar = "gson-2.7.jar"; proj.OtherBuildItems.Add (new BuildItem ("AndroidJavaLibrary", jar) { WebContent = $"https://repo1.maven.org/maven2/com/google/code/gson/gson/2.7/{jar}" @@ -231,7 +212,7 @@ public void GetExtraLibraryLocationsForDesigner () WebContent = "https://repo1.maven.org/maven2/com/soundcloud/android/android-crop/1.0.1/android-crop-1.0.1.aar" }); // Each NuGet package and AAR file are in libraryprojectimports.cache, AndroidJavaSource is not - int libraryProjectImportsJars = 14; + const int libraryProjectImportsJars = 55; using (var b = CreateApkBuilder (Path.Combine ("temp", TestName), false, false)) { // GetExtraLibraryLocationsForDesigner on new project Assert.IsTrue (b.RunTarget (proj, target, parameters: DesignerParameters), $"build should have succeeded for target `{target}` 1"); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs index b456c4d6ae1..e184f5edce2 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/IncrementalBuildTest.cs @@ -819,10 +819,10 @@ public void ResolveLibraryProjectImports () Assert.IsTrue (b.Build (proj), "second build should have succeeded."); FileAssert.Exists (cacheFile); var actual = ReadCache (cacheFile); - CollectionAssert.AreEqual (actual.Jars.Select (j => j.ItemSpec), - expected.Jars.Select (j => j.ItemSpec)); - CollectionAssert.AreEqual (actual.ResolvedResourceDirectories.Select (j => j.ItemSpec), - expected.ResolvedResourceDirectories.Select (j => j.ItemSpec)); + CollectionAssert.AreEqual (actual.Jars.Select (j => j.ItemSpec).OrderBy (j => j), + expected.Jars.Select (j => j.ItemSpec).OrderBy (j => j)); + CollectionAssert.AreEqual (actual.ResolvedResourceDirectories.Select (j => j.ItemSpec).OrderBy (j => j), + expected.ResolvedResourceDirectories.Select (j => j.ItemSpec).OrderBy (j => j)); // Add a new AAR file to the project var aar = new AndroidItem.AndroidAarLibrary ("Jars\\android-crop-1.0.1.aar") { @@ -1363,39 +1363,6 @@ public void AndroidAssetMissing () } } - [Test] - [NonParallelizable] - public void AndroidXMigrationBug () - { - var proj = new XamarinFormsAndroidApplicationProject (); - proj.PackageReferences.Add (KnownPackages.AndroidXMigration); - proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); - proj.PackageReferences.Add (KnownPackages.AndroidXAppCompatResources); - proj.PackageReferences.Add (KnownPackages.AndroidXBrowser); - proj.PackageReferences.Add (KnownPackages.AndroidXMediaRouter); - proj.PackageReferences.Add (KnownPackages.AndroidXLegacySupportV4); - proj.PackageReferences.Add (KnownPackages.AndroidXLifecycleLiveData); - proj.PackageReferences.Add (KnownPackages.XamarinGoogleAndroidMaterial); - - string source = "class Foo { }"; - proj.Sources.Add (new BuildItem.Source ("Foo.cs") { TextContent = () => source }); - - using (var b = CreateApkBuilder ()) { - Assert.IsTrue (b.Build (proj), "first build should have succeeded."); - source = source.Replace ("Foo", "Bar"); - proj.Touch ("Foo.cs"); - Assert.IsTrue (b.Build (proj, doNotCleanupOnUpdate: true), "second build should have succeeded."); - var targets = new [] { - "_CompileResources", - "_UpdateAndroidResgen", - "_GenerateAndroidResourceDir", - }; - foreach (var target in targets) { - Assert.IsTrue (b.Output.IsTargetSkipped (target), $"`{target}` should be skipped."); - } - } - } - [Test] public void ChangeSupportedAbis () { diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs index 27e3a35ba57..c31a78a6ded 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/ManifestTest.cs @@ -737,13 +737,7 @@ public void MergeLibraryManifest () new BuildItem.ProjectReference ("..\\Binding1\\Binding1.csproj", lib.ProjectGuid) }, PackageReferences = { - KnownPackages.SupportMediaCompat_27_0_2_1, - KnownPackages.SupportFragment_27_0_2_1, - KnownPackages.SupportCoreUtils_27_0_2_1, - KnownPackages.SupportCoreUI_27_0_2_1, - KnownPackages.SupportCompat_27_0_2_1, - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportV7AppCompat_27_0_2_1, + KnownPackages.AndroidXAppCompat }, }; proj.SetProperty ("AndroidManifestMerger", "legacy"); @@ -759,7 +753,7 @@ public void MergeLibraryManifest () using Android.Runtime; using Android.Views; using Android.Widget; -using Android.Support.V4.App; +using AndroidX.Fragment.App; using Android.Util; [Activity (Label = ""TestActivity1"")] [IntentFilter (new[]{Intent.ActionMain}, Categories = new[]{ ""com.xamarin.sample"" })] @@ -779,7 +773,7 @@ public class TestActivity1 : FragmentActivity { using Android.Runtime; using Android.Views; using Android.Widget; -using Android.Support.V4.App; +using AndroidX.Fragment.App; using Android.Util; [Activity (Label = ""TestActivity2"")] [IntentFilter (new[]{Intent.ActionMain}, Categories = new[]{ ""com.xamarin.sample"" })] @@ -800,8 +794,8 @@ public class TestActivity2 : FragmentActivity { "${applicationId}.FacebookInitProvider was not replaced with com.xamarin.manifest.FacebookInitProvider"); Assert.IsTrue (manifest.Contains ("com.xamarin.test.internal.FacebookInitProvider"), ".internal.FacebookInitProvider was not replaced with com.xamarin.test.internal.FacebookInitProvider"); - Assert.AreEqual (manifest.IndexOf ("meta-data", StringComparison.OrdinalIgnoreCase), - manifest.LastIndexOf ("meta-data", StringComparison.OrdinalIgnoreCase), "There should be only one meta-data element"); + Assert.AreEqual (manifest.IndexOf ("android.support.VERSION", StringComparison.OrdinalIgnoreCase), + manifest.LastIndexOf ("android.support.VERSION", StringComparison.OrdinalIgnoreCase), "There should be only one android.support.VERSION meta-data element"); var doc = XDocument.Parse (manifest); var ns = XNamespace.Get ("http://schemas.android.com/apk/res/android"); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs index 526f8dbe9b8..86547373f5d 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs @@ -261,25 +261,7 @@ public void ExplicitPackageNamingPolicy () public void CheckMetadataSkipItemsAreProcessedCorrectly () { var packages = new List () { - KnownPackages.Android_Arch_Core_Common_26_1_0, - KnownPackages.Android_Arch_Lifecycle_Common_26_1_0, - KnownPackages.Android_Arch_Lifecycle_Runtime_26_1_0, - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportCompat_27_0_2_1, - KnownPackages.SupportCoreUI_27_0_2_1, - KnownPackages.SupportCoreUtils_27_0_2_1, - KnownPackages.SupportDesign_27_0_2_1, - KnownPackages.SupportFragment_27_0_2_1, - KnownPackages.SupportMediaCompat_27_0_2_1, - KnownPackages.SupportV7AppCompat_27_0_2_1, - KnownPackages.SupportV7CardView_27_0_2_1, - KnownPackages.SupportV7MediaRouter_27_0_2_1, - KnownPackages.SupportV7RecyclerView_27_0_2_1, - KnownPackages.VectorDrawable_27_0_2_1, - new Package () { Id = "Xamarin.Android.Support.Annotations", Version = "27.0.2.1" }, - new Package () { Id = "Xamarin.Android.Support.Transition", Version = "27.0.2.1" }, - new Package () { Id = "Xamarin.Android.Support.v7.Palette", Version = "27.0.2.1" }, - new Package () { Id = "Xamarin.Android.Support.Animated.Vector.Drawable", Version = "27.0.2.1" }, + KnownPackages.Xamarin_Jetbrains_Annotations, }; string metaDataTemplate = @" @@ -644,20 +626,8 @@ public void CheckIncludedFilesArePresent () [TestCase (-1, 200)] public void BuildApkWithZipFlushLimits (int filesLimit, int sizeLimit) { - var proj = new XamarinAndroidApplicationProject { - IsRelease = false, - PackageReferences = { - KnownPackages.SupportDesign_27_0_2_1, - KnownPackages.SupportV7CardView_27_0_2_1, - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportCoreUtils_27_0_2_1, - KnownPackages.SupportMediaCompat_27_0_2_1, - KnownPackages.SupportFragment_27_0_2_1, - KnownPackages.SupportCoreUI_27_0_2_1, - KnownPackages.SupportCompat_27_0_2_1, - KnownPackages.SupportV7AppCompat_27_0_2_1, - KnownPackages.SupportV7MediaRouter_27_0_2_1, - }, + var proj = new XamarinFormsAndroidApplicationProject { + IsRelease = false }; proj.SetProperty ("EmbedAssembliesIntoApk", "true"); if (filesLimit > 0) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/WearTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/WearTests.cs index e6ca9dec4f3..95cf507ac37 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/WearTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/WearTests.cs @@ -7,27 +7,6 @@ namespace Xamarin.Android.Build.Tests [TestFixture] public class WearTests : BaseTest { - [Test] - public void ResolveLibraryImportsWithReadonlyFiles () - { - //NOTE: doesn't need to be a full Android Wear app - var proj = new XamarinAndroidApplicationProject { - PackageReferences = { - KnownPackages.AndroidWear_2_2_0, - KnownPackages.Android_Arch_Core_Common_26_1_0, - KnownPackages.Android_Arch_Lifecycle_Common_26_1_0, - KnownPackages.Android_Arch_Lifecycle_Runtime_26_1_0, - KnownPackages.SupportCompat_27_0_2_1, - KnownPackages.SupportCoreUI_27_0_2_1, - KnownPackages.SupportPercent_27_0_2_1, - KnownPackages.SupportV7RecyclerView_27_0_2_1, - }, - }; - using (var b = CreateApkBuilder ()) { - Assert.IsTrue (b.Build (proj), "Build should have succeeded."); - } - } - [Test] public void BasicProject ([Values (true, false)] bool isRelease) { @@ -42,7 +21,6 @@ public void BasicProject ([Values (true, false)] bool isRelease) [Test] public void BundledWearApp () { - var target = "_UpdateAndroidResgen"; var path = Path.Combine ("temp", TestName); var app = new XamarinAndroidApplicationProject { ProjectName = "MyApp", @@ -71,7 +49,7 @@ public void WearProjectJavaBuildFailure () IsRelease = true, EnableDefaultItems = true, PackageReferences = { - new Package { Id = "Xamarin.AndroidX.Wear", Version = "1.2.0.5" }, + KnownPackages.XamarinAndroidXWear, new Package { Id = "Xamarin.Android.Wear", Version = "2.2.0" }, new Package { Id = "Xamarin.AndroidX.PercentLayout", Version = "1.0.0.14" }, new Package { Id = "Xamarin.AndroidX.Legacy.Support.Core.UI", Version = "1.0.0.14" }, @@ -81,12 +59,7 @@ public void WearProjectJavaBuildFailure () var builder = CreateApkBuilder (); builder.ThrowOnBuildFailure = false; Assert.IsFalse (builder.Build (proj), $"{proj.ProjectName} should fail."); - var text = $"java.lang.RuntimeException"; - Assert.IsTrue (StringAssertEx.ContainsText (builder.LastBuildOutput, text), $"Output did not contain '{text}'"); - text = $"is defined multiple times"; - Assert.IsTrue (StringAssertEx.ContainsText (builder.LastBuildOutput, text), $"Output did not contain '{text}'"); - text = $"is from 'androidx.core.core.aar'"; - Assert.IsTrue (StringAssertEx.ContainsText (builder.LastBuildOutput, text), $"Output did not contain '{text}'"); + Assert.IsTrue (StringAssertEx.ContainsText (builder.LastBuildOutput, "error XA1039"), "Should receive error XA1039"); } } } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs index cacbe31e528..d77f5607658 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs @@ -4,339 +4,49 @@ namespace Xamarin.ProjectTools { public static class KnownPackages { - public static Package AndroidSupportV4_27_0_2_1 = new Package () { - Id = "Xamarin.Android.Support.v4", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.v4") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v4.27.0.2.1\\lib\\MonoAndroid70\\Xamarin.Android.Support.v4.dll" } - } - }; - public static Package AndroidWear_2_2_0 = new Package () { - Id = "Xamarin.Android.Wear", - Version = "2.2.0", - TargetFramework = "MonoAndroid80", - References = { - new BuildItem.Reference ("Xamarin.Android.Wearable") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Wear.2.2.0\\lib\\MonoAndroid80\\Xamarin.Android.Wear.dll" } - } - }; - public static Package SupportV7RecyclerView_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.v7.RecyclerView", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.V7.RecyclerView") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v7.RecyclerView.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.v7.RecyclerView.dll" - } - } - }; - public static Package SupportV7CardView_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.v7.Cardview", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.v7.CardView") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v7.CardView.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.v7.CardView.dll" } - } - }; - public static Package SupportV7AppCompat_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.v7.AppCompat", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.v7.AppCompat") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v7.AppCompat.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.v7.AppCompat.dll" } - } - }; - public static Package SupportCompat_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.Compat", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Compat") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Compat.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.Compat.dll" } - } - }; - public static Package SupportCoreUI_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.Core.UI", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Core.UI") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Core.UI.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.Core.UI.dll" } - } - }; - public static Package SupportCoreUtils_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.Core.Utils", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Core.Utils") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Core.Utils.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.Core.Utils.dll" } - } - }; - public static Package SupportFragment_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.Fragment", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Fragment") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Fragment.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.Fragment.dll" } - } - }; - public static Package SupportMediaCompat_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.Media.Compat", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Media.Compat") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Media.Compat.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.Media.Compat.dll" } - } - }; - public static Package SupportPercent_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.Percent", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Percent") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Percent.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.Percent.dll" } - } - }; - public static Package SupportV7MediaRouter_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.v7.MediaRouter", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.v7.MediaRouter") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v7.MediaRouter.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.v7.MediaRouter.dll" } - } + public static Package XamarinAndroidXWear = new Package { + Id = "Xamarin.AndroidX.Wear", + Version = "1.2.0.5" }; - public static Package SupportConstraintLayout_1_0_2_2 = new Package { - Id = "Xamarin.Android.Support.Constraint.Layout", - Version = "1.0.2.2", - TargetFramework = "MonoAndroid70", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Constraint.Layout") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Constraint.Layout.1.0.2.2\\lib\\MonoAndroid70\\Xamarin.Android.Support.Constraint.Layout.dll" - } - } - }; - public static Package VectorDrawable_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.Vector.Drawable", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Vector.Drawable") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Vector.Drawable.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.Vector.Drawable.dll" } - }, - }; - public static Package SupportDesign_27_0_2_1 = new Package { - Id = "Xamarin.Android.Support.Design", - Version = "27.0.2.1", - TargetFramework = "MonoAndroid81", - References = { - new BuildItem.Reference ("Xamarin.Android.Support.Design") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Design.27.0.2.1\\lib\\MonoAndroid81\\Xamarin.Android.Support.Design.dll" } - } - }; - public static Package XamarinFormsPCL_2_3_4_231 = new Package { - Id = "Xamarin.Forms", - Version = "2.3.4.231", - TargetFramework = "portable-net45+win+wp80+MonoAndroid10+xamarinios10+MonoTouch10", - References = { - new BuildItem.Reference ("Xamarin.Forms.Core") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.2.3.4.231\\lib\\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\\Xamarin.Forms.Core.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Xaml") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.2.3.4.231\\lib\\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\\Xamarin.Forms.Xaml.dll" - }, - } - }; - public static Package XamarinForms_2_3_4_231 = new Package { + public static Package XamarinForms = new Package { Id = "Xamarin.Forms", - Version = "2.3.4.231", - TargetFramework = "MonoAndroid44", - References = { - new BuildItem.Reference ("Xamarin.Forms.Platform.Android") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.2.3.4.231\\lib\\MonoAndroid10\\Xamarin.Forms.Platform.Android.dll" - }, - new BuildItem.Reference ("FormsViewGroup") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.2.3.4.231\\lib\\MonoAndroid10\\FormsViewGroup.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Core") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.2.3.4.231\\lib\\MonoAndroid10\\Xamarin.Forms.Core.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Xaml") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.2.3.4.231\\lib\\MonoAndroid10\\Xamarin.Forms.Xaml.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Platform") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.2.3.4.231\\lib\\MonoAndroid10\\Xamarin.Forms.Platform.dll" - }, - } + Version = "5.0.0.2622", }; - public static Package XamarinForms_4_0_0_425677 = new Package { - Id = "Xamarin.Forms", - Version = "4.0.0.425677", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.Forms.Platform.Android") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.0.0.425677\\lib\\MonoAndroid90\\Xamarin.Forms.Platform.Android.dll" - }, - new BuildItem.Reference ("FormsViewGroup") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.0.0.425677\\lib\\MonoAndroid90\\FormsViewGroup.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Core") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.0.0.425677\\lib\\MonoAndroid90\\Xamarin.Forms.Core.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Xaml") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.0.0.425677\\lib\\MonoAndroid90\\Xamarin.Forms.Xaml.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Platform") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.0.0.425677\\lib\\MonoAndroid90\\Xamarin.Forms.Platform.dll" - }, - } - }; - public static Package XamarinForms_4_7_0_1142 = new Package { - Id = "Xamarin.Forms", - Version = "4.7.0.1142", - TargetFramework = "MonoAndroid10.0", - }; - public static Package XamarinForms_5_0_0_2515 = new Package { - Id = "Xamarin.Forms", - Version = "5.0.0.2515", - TargetFramework = "MonoAndroid10.0", - }; - public static Package XamarinFormsMaps_4_7_0_1142 = new Package { - Id = "Xamarin.Forms.Maps", - Version = "4.7.0.1142", - TargetFramework = "MonoAndroid10.0", - }; - public static Package XamarinFormsMaps_5_0_0_2515 = new Package { + public static Package XamarinFormsMaps = new Package { Id = "Xamarin.Forms.Maps", - Version = "5.0.0.2515", - TargetFramework = "MonoAndroid10.0", - }; - public static Package XamarinFormsMaps_4_0_0_425677 = new Package { - Id = "Xamarin.Forms.Maps", - Version = "4.0.0.425677", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.Forms.Maps.Android") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.Maps.4.0.0.425677\\lib\\MonoAndroid90\\Xamarin.Forms.Maps.Android.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Maps") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.Maps.4.0.0.425677\\lib\\MonoAndroid90\\Xamarin.Forms.Maps.dll" - }, - } - }; - public static Package XamarinForms_4_4_0_991265 = new Package { - Id = "Xamarin.Forms", - Version = "4.4.0.991265", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.Forms.Platform.Android") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.4.0.991265\\lib\\MonoAndroid90\\Xamarin.Forms.Platform.Android.dll" - }, - new BuildItem.Reference ("FormsViewGroup") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.4.0.991265\\lib\\MonoAndroid90\\FormsViewGroup.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Core") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.4.0.991265\\lib\\MonoAndroid90\\Xamarin.Forms.Core.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Xaml") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.4.0.991265\\lib\\MonoAndroid90\\Xamarin.Forms.Xaml.dll" - }, - new BuildItem.Reference ("Xamarin.Forms.Platform") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Forms.4.4.0.991265\\lib\\MonoAndroid90\\Xamarin.Forms.Platform.dll" - }, - } + Version = "5.0.0.2622", }; - public static Package AndroidXMigration = new Package { - Id = "Xamarin.AndroidX.Migration", - Version = "1.0.6.1", - TargetFramework = "MonoAndroid10", + public static Package AndroidXConstraintLayout = new Package { + Id = "Xamarin.AndroidX.ConstraintLayout", + Version = "2.1.4.9", }; public static Package AndroidXAppCompat = new Package { Id = "Xamarin.AndroidX.AppCompat", - Version = "1.1.0.1", - TargetFramework = "MonoAndroid10", - }; - public static Package AndroidXAppCompat_1_6_0_1 = new Package { - Id = "Xamarin.AndroidX.AppCompat", - Version = "1.6.0.1", - TargetFramework = "MonoAndroid10", + Version = "1.6.1.6", }; public static Package AndroidXBrowser = new Package { Id = "Xamarin.AndroidX.Browser", - Version = "1.2.0.1", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.AndroidX.Browser") { - MetadataValues = "HintPath=..\\packages\\Xamarin.AndroidX.Browser.1.0.0\\lib\\MonoAndroid90\\Xamarin.AndroidX.Browser.dll" - }, - } - }; - public static Package AndroidXMediaRouter = new Package { - Id = "Xamarin.AndroidX.MediaRouter", - Version = "1.1.0.1", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.AndroidX.MediaRouter") { - MetadataValues = "HintPath=..\\packages\\Xamarin.AndroidX.MediaRouter.1.1.0\\lib\\MonoAndroid90\\Xamarin.AndroidX.MediaRouter.dll" - }, - } + Version = "1.5.0.3", }; public static Package AndroidXLegacySupportV4 = new Package { Id = "Xamarin.AndroidX.Legacy.Support.V4", - Version = "1.0.0.1", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.AndroidX.Legacy.Support.V4") { - MetadataValues = "HintPath=..\\packages\\Xamarin.AndroidX.Legacy.Support.V4.1.0.0\\lib\\MonoAndroid90\\Xamarin.AndroidX.Legacy.Support.V4.dll" - }, - } - }; - public static Package AndroidXLifecycleLiveData = new Package { - Id = "Xamarin.AndroidX.Lifecycle.LiveData", - Version = "2.2.0.1", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.AndroidX.Lifecycle.LiveData") { - MetadataValues = "HintPath=..\\packages\\Xamarin.AndroidX.Lifecycle.LiveData.2.1.0\\lib\\MonoAndroid90\\Xamarin.AndroidX.Lifecycle.LiveData.dll" - }, - } + Version = "1.0.0.22", }; public static Package AndroidXAppCompatResources = new Package { Id = "Xamarin.AndroidX.AppCompat.AppCompatResources", - Version = "1.1.0.1", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.AndroidX.AppCompat.AppCompatResources") { - MetadataValues = "HintPath=..\\packages\\Xamarin.AndroidX.AppCompat.AppCompatResources.1.1.0.1\\lib\\MonoAndroid90\\Xamarin.AndroidX.AppCompat.AppCompatResources.dll" - }, - } + Version = "1.6.1.7", + }; + public static Package AndroidXLifecycleLiveData = new Package { + Id = "Xamarin.AndroidX.Lifecycle.LiveData", + Version = "2.6.2.3", }; public static Package AndroidXWorkRuntime = new Package { Id = "Xamarin.AndroidX.Work.Runtime", - Version = "2.3.4.3", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference("Xamarin.AndroidX.Work.Runtime") { - MetadataValues = "HintPath=..\\packages\\Xamarin.AndroidX.Work.Runtime.2.3.4.3\\lib\\MonoAndroid90\\Xamarin.AndroidX.Work.Runtime.dll" - } - } + Version = "2.9.0", }; public static Package XamarinGoogleAndroidMaterial = new Package { Id = "Xamarin.Google.Android.Material", - Version = "1.0.0.1", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("Xamarin.Google.Android.Material") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Google.Android.Material.1.0.0\\lib\\MonoAndroid90\\Xamarin.Google.Android.Material.dll" - }, - } + Version = "1.10.0.2", }; public static Package CocosSharp_PCL_Shared_1_5_0_0 = new Package { Id = "CocosSharp.PCL.Shared", @@ -364,16 +74,6 @@ public static class KnownPackages }, } }; - public static Package Xamarin_Android_Support_v8_RenderScript_28_0_0_3 = new Package { - Id = "Xamarin.Android.Support.v8.RenderScript", - Version = "28.0.0.3", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference ("MonoGame.Framework") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v8.RenderScript.28.0.0.3\\lib\\MonoAndroid90\\Xamarin.Android.Support.v8.RenderScript.dll" - }, - } - }; public static Package FSharp_Core_Latest = new Package { Id = "FSharp.Core", Version = "4.7.1", @@ -425,79 +125,9 @@ public static class KnownPackages } } }; - public static Package Android_Arch_Core_Common_26_1_0 = new Package { - Id = "Xamarin.Android.Arch.Core.Common", - Version = "26.1.0", - TargetFramework = "MonoAndroid80", - References = { - new BuildItem.Reference("Xamarin.Android.Arch.Core.Common") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Arch.Core.Common.26.1.0\\lib\\MonoAndroid80\\Xamarin.Android.Arch.Core.Common.dll" - } - } - }; - public static Package Android_Arch_Lifecycle_Common_26_1_0 = new Package { - Id = "Xamarin.Android.Arch.Lifecycle.Common", - Version = "26.1.0", - TargetFramework = "MonoAndroid80", - References = { - new BuildItem.Reference("Xamarin.Android.Arch.Lifecycle.Common") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Arch.Lifecycle.Common.26.1.0\\lib\\MonoAndroid80\\Xamarin.Android.Arch.Lifecycle.Common.dll" - } - } - }; - public static Package Android_Arch_Lifecycle_Runtime_26_1_0 = new Package { - Id = "Xamarin.Android.Arch.Lifecycle.Runtime", - Version = "26.1.0", - TargetFramework = "MonoAndroid80", - References = { - new BuildItem.Reference("Xamarin.Android.Arch.Lifecycle.Runtime") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Arch.Lifecycle.Runtime.26.1.0\\lib\\MonoAndroid80\\Xamarin.Android.Arch.Lifecycle.Runtime.dll" - } - } - }; - public static Package Android_Arch_Work_Runtime = new Package { - Id = "Xamarin.Android.Arch.Work.Runtime", - Version = "1.0.0", - TargetFramework = "MonoAndroid90", - References = { - new BuildItem.Reference("Xamarin.Android.Arch.Work.Runtime") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Arch.Work.Runtime.1.0.0\\lib\\MonoAndroid90\\Xamarin.Android.Arch.Work.Runtime.dll" - } - } - }; - public static Package Xamarin_Android_Crashlytics = new Package { - Id = "Xamarin.Android.Crashlytics", - Version = "2.9.4.4", - TargetFramework = "MonoAndroid60", - References = { - new BuildItem.Reference("Xamarin.Android.Crashlytics") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Crashlytics.2.9.4.4\\lib\\MonoAndroid60\\Xamarin.Android.Crashlytics.dll" - } - } - }; - public static Package Xamarin_Android_Fabric = new Package { - Id = "Xamarin.Android.Fabric", - Version = "1.4.3.4", - TargetFramework = "MonoAndroid60", - References = { - new BuildItem.Reference("Xamarin.Android.Fabric") { - MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Fabric.1.4.3.4\\lib\\MonoAndroid60\\Xamarin.Android.Fabric.dll" - } - } - }; public static Package Xamarin_Build_Download = new Package { Id = "Xamarin.Build.Download", - Version = "0.11.2", - }; - - public static Package Xamarin_Build_Download_0_11_3 = new Package { - Id = "Xamarin.Build.Download", - Version = "0.11.3", - }; - // NOTE: old version required for some tests - public static Package Xamarin_Build_Download_0_4_11 = new Package { - Id = "Xamarin.Build.Download", - Version = "0.4.11", + Version = "0.11.4", }; public static Package NuGet_Build_Packaging = new Package { Id = "NuGet.Build.Packaging", @@ -571,7 +201,7 @@ public static class KnownPackages }; public static Package ZXing_Net_Mobile = new Package { Id = "ZXing.Net.Mobile", - Version = "2.4.1", + Version = "3.0.0-beta5", // version with AndroidX TargetFramework = "MonoAndroid10", }; public static Package Xamarin_Legacy_OpenTK = new Package { @@ -584,6 +214,10 @@ public static class KnownPackages Version = "0.0.1-alpha", TargetFramework = "MonoAndroid10", }; + public static Package Xamarin_Jetbrains_Annotations = new Package { + Id = "Xamarin.Jetbrains.Annotations", + Version = "24.1.0.1", + }; public static Package Mono_AotProfiler_Android = new Package { Id = "Mono.AotProfiler.Android", Version = "7.0.0-preview1", diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidWearApplicationProject.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidWearApplicationProject.cs index 93bf7c01a4f..7b32bcc983e 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidWearApplicationProject.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinAndroidWearApplicationProject.cs @@ -3,13 +3,18 @@ using System.IO; using System.Diagnostics; using System.Runtime.CompilerServices; +using System.Linq; namespace Xamarin.ProjectTools { + /// + /// Migrated from Android.Support to AndroidX + /// see: https://android-developers.googleblog.com/2016/04/build-beautifully-for-android-wear.html + /// public class XamarinAndroidWearApplicationProject : XamarinAndroidApplicationProject { static readonly string default_strings_xml, default_main_activity; - static readonly string default_layout_main, default_layout_rect_main, default_layout_round_main; + static readonly string default_layout_rect_main, default_layout_round_main; static XamarinAndroidWearApplicationProject () { @@ -17,8 +22,6 @@ static XamarinAndroidWearApplicationProject () default_main_activity = sr.ReadToEnd (); using (var sr = new StreamReader (typeof(XamarinAndroidApplicationProject).Assembly.GetManifestResourceStream ("Xamarin.ProjectTools.Resources.Wear.Strings.xml"))) default_strings_xml = sr.ReadToEnd (); - using (var sr = new StreamReader (typeof(XamarinAndroidApplicationProject).Assembly.GetManifestResourceStream ("Xamarin.ProjectTools.Resources.Wear.LayoutMain.axml"))) - default_layout_main = sr.ReadToEnd (); using (var sr = new StreamReader (typeof(XamarinAndroidApplicationProject).Assembly.GetManifestResourceStream ("Xamarin.ProjectTools.Resources.Wear.LayoutRectMain.axml"))) default_layout_rect_main = sr.ReadToEnd (); using (var sr = new StreamReader (typeof(XamarinAndroidApplicationProject).Assembly.GetManifestResourceStream ("Xamarin.ProjectTools.Resources.Wear.LayoutRoundMain.axml"))) @@ -28,16 +31,23 @@ static XamarinAndroidWearApplicationProject () public XamarinAndroidWearApplicationProject (string debugConfigurationName = "Debug", string releaseConfigurationName = "Release", [CallerMemberName] string packageName = "") : base (debugConfigurationName, releaseConfigurationName, packageName) { - PackageReferences.Add (KnownPackages.AndroidWear_2_2_0); + PackageReferences.Add (KnownPackages.XamarinAndroidXWear); + + // uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library androidx.wear.wear.aar as the library might be using APIs not available in 21 + SupportedOSPlatformVersion = "23"; MainActivity = default_main_activity; StringsXml = default_strings_xml; - LayoutMain = default_layout_main; LayoutRectMain = default_layout_rect_main; LayoutRoundMain = default_layout_round_main; - AndroidResources.Add (new AndroidItem.AndroidResource ("Resources\\layout\\RectangleMain.axml") { TextContent = () => LayoutRectMain }); - AndroidResources.Add (new AndroidItem.AndroidResource ("Resources\\layout\\RoundMain.axml") { TextContent = () => LayoutRoundMain }); + // Remove Resources\layout\Main.axml + var main = AndroidResources.FirstOrDefault (a => a.Include () == "Resources\\layout\\Main.axml"); + if (main != null) + AndroidResources.Remove (main); + + AndroidResources.Add (new AndroidItem.AndroidResource ("Resources\\layout-notround\\activity_main.axml") { TextContent = () => LayoutRectMain }); + AndroidResources.Add (new AndroidItem.AndroidResource ("Resources\\layout-round\\activity_main.axml") { TextContent = () => LayoutRoundMain }); } public string LayoutRectMain { get; set; } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinFormsAndroidApplicationProject.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinFormsAndroidApplicationProject.cs index 598f62a9139..66a1b08f19f 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinFormsAndroidApplicationProject.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinFormsAndroidApplicationProject.cs @@ -43,7 +43,11 @@ public XamarinFormsAndroidApplicationProject (string debugConfigurationName = "D { // Don't opt into ImplicitUsings RemoveProperty (KnownProperties.ImplicitUsings); - PackageReferences.Add (KnownPackages.XamarinForms_4_7_0_1142); + PackageReferences.Add (KnownPackages.XamarinForms); + + // Workarounds for Guava.ListenableFuture + // See: https://github.com/xamarin/AndroidX/issues/535 + PackageReferences.Add (KnownPackages.AndroidXBrowser); AndroidResources.Add (new AndroidItem.AndroidResource ("Resources\\values\\colors.xml") { TextContent = () => colors_xml, diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinFormsMapsApplicationProject.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinFormsMapsApplicationProject.cs index b83416c51d6..b068e6decc2 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinFormsMapsApplicationProject.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/XamarinFormsMapsApplicationProject.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.IO; using System.Runtime.CompilerServices; @@ -17,7 +17,7 @@ static XamarinFormsMapsApplicationProject () public XamarinFormsMapsApplicationProject ([CallerMemberName] string packageName = "") : base (packageName: packageName) { - PackageReferences.Add (KnownPackages.XamarinFormsMaps_4_7_0_1142); + PackageReferences.Add (KnownPackages.XamarinFormsMaps); PackageReferences.Add (KnownPackages.Xamarin_GooglePlayServices_Base); PackageReferences.Add (KnownPackages.Xamarin_GooglePlayServices_Basement); PackageReferences.Add (KnownPackages.Xamarin_GooglePlayServices_Maps); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Wear/LayoutMain.axml b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Wear/LayoutMain.axml deleted file mode 100644 index 72954bdb6ee..00000000000 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Wear/LayoutMain.axml +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Wear/MainActivity.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Wear/MainActivity.cs index 09aa236dc7e..1b0017e1b3b 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Wear/MainActivity.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Wear/MainActivity.cs @@ -1,13 +1,12 @@ -using System; +using System; using Android.App; using Android.Content; using Android.OS; using Android.Runtime; -using Android.Support.V4.App; -using Android.Support.Wearable.Views; using Android.Views; using Android.Widget; +using AndroidX.Core.App; //${USINGS} namespace ${ROOT_NAMESPACE} @@ -22,26 +21,22 @@ protected override void OnCreate (Bundle bundle) base.OnCreate (bundle); // Set our view from the "main" layout resource - SetContentView (Resource.Layout.Main); - - var v = FindViewById (Resource.Id.watch_view_stub); - v.LayoutInflated += delegate { - - // Get our button from the layout resource, - // and attach an event to it - Button button = FindViewById