diff --git a/Documentation/guides/messages/xa1039.md b/Documentation/guides/messages/xa1039.md new file mode 100644 index 00000000000..91d0f5bb769 --- /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 supported in .NET 9 and later, 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..a1a45e18ff3 100644 --- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx +++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx @@ -1006,4 +1006,8 @@ 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 not supported in .NET 9 and later, 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. + \ 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..fbe9f4e5536 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."); @@ -831,10 +824,6 @@ 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..37b30c30577 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."); } @@ -450,19 +438,14 @@ public void ApplicationIdPlaceholder () 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.MainActivity = proj.DefaultMainActivity.Replace ("base.OnCreate (bundle);", "base.OnCreate (bundle);\nFirebase.Crashlytics.FirebaseCrashlytics.Instance.SendUnsentReports();"); + proj.PackageReferences.Add (new Package { Id = "Xamarin.Firebase.Crashlytics", Version = "118.5.1.1" }); 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"); - } + using var builder = CreateApkBuilder (); + 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}.firebaseinitprovider\""), "placeholder not replaced"); + Assert.IsFalse (manifest.Contains ("dollar_openBracket_applicationId_closeBracket"), "`aapt/AndroidManifest.xml` not ignored"); } [Test] @@ -714,7 +697,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 +718,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 +1151,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."); } @@ -1436,12 +1423,7 @@ public void CheckLintErrorsAndWarnings () { string disabledIssues = "StaticFieldLeak,ObsoleteSdkInt,AllowBackup,ExportedReceiver,RedundantLabel"; - var proj = new XamarinAndroidApplicationProject () { - PackageReferences = { - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportConstraintLayout_1_0_2_2, - }, - }; + var proj = new XamarinAndroidApplicationProject (); proj.SetProperty ("AndroidLintEnabled", true.ToString ()); proj.SetProperty ("AndroidLintDisabledIssues", disabledIssues); proj.SetProperty ("AndroidLintEnabledIssues", ""); @@ -1458,14 +1440,12 @@ public class MainActivity : Activity TextContent = () => { return @" "; } @@ -1621,25 +1601,18 @@ public void DuplicateValuesInResourceCaseMap () [Test] public void CheckLintResourceFileReferencesAreFixed () { - var proj = new XamarinAndroidApplicationProject () { - PackageReferences = { - KnownPackages.AndroidSupportV4_27_0_2_1, - KnownPackages.SupportConstraintLayout_1_0_2_2, - }, - }; + var proj = new XamarinAndroidApplicationProject (); proj.SetProperty ("AndroidLintEnabled", true.ToString ()); proj.AndroidResources.Add (new AndroidItem.AndroidResource ("Resources\\layout\\test.axml") { TextContent = () => { return @" 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..f0c088c9c59 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..122500d6428 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 { + var proj = new XamarinFormsAndroidApplicationProject { 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, - }, }; 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/Base/BuildReleaseArm64XFormsDotNet.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.apkdesc index 6dac615b231..ddd5ba9e1b8 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.apkdesc +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.apkdesc @@ -2,25 +2,25 @@ "Comment": null, "Entries": { "AndroidManifest.xml": { - "Size": 3904 + "Size": 6652 }, "assemblies/_Microsoft.Android.Resource.Designer.dll": { "Size": 2281 }, "assemblies/FormsViewGroup.dll": { - "Size": 8099 + "Size": 8100 }, "assemblies/Java.Interop.dll": { "Size": 69705 }, "assemblies/Mono.Android.dll": { - "Size": 456294 + "Size": 458238 }, "assemblies/Mono.Android.Runtime.dll": { - "Size": 5148 + "Size": 5151 }, "assemblies/mscorlib.dll": { - "Size": 4052 + "Size": 4002 }, "assemblies/netstandard.dll": { "Size": 5643 @@ -95,7 +95,7 @@ "Size": 8699 }, "assemblies/System.Private.CoreLib.dll": { - "Size": 850036 + "Size": 849922 }, "assemblies/System.Private.DataContractSerialization.dll": { "Size": 193991 @@ -140,13 +140,13 @@ "Size": 5015 }, "assemblies/Xamarin.AndroidX.Activity.dll": { - "Size": 13842 + "Size": 16149 }, "assemblies/Xamarin.AndroidX.AppCompat.AppCompatResources.dll": { - "Size": 6227 + "Size": 6225 }, "assemblies/Xamarin.AndroidX.AppCompat.dll": { - "Size": 134494 + "Size": 138721 }, "assemblies/Xamarin.AndroidX.CardView.dll": { "Size": 6977 @@ -155,67 +155,85 @@ "Size": 17886 }, "assemblies/Xamarin.AndroidX.Core.dll": { - "Size": 120018 + "Size": 127505 }, "assemblies/Xamarin.AndroidX.CursorAdapter.dll": { - "Size": 9002 + "Size": 8997 }, "assemblies/Xamarin.AndroidX.DrawerLayout.dll": { - "Size": 15330 + "Size": 15319 }, "assemblies/Xamarin.AndroidX.Fragment.dll": { - "Size": 45683 + "Size": 51744 }, "assemblies/Xamarin.AndroidX.Legacy.Support.Core.UI.dll": { "Size": 6242 }, "assemblies/Xamarin.AndroidX.Lifecycle.Common.dll": { - "Size": 6574 + "Size": 6900 }, "assemblies/Xamarin.AndroidX.Lifecycle.LiveData.Core.dll": { - "Size": 6749 + "Size": 6743 }, "assemblies/Xamarin.AndroidX.Lifecycle.ViewModel.dll": { - "Size": 6289 + "Size": 7011 }, "assemblies/Xamarin.AndroidX.Loader.dll": { - "Size": 13087 - }, - "assemblies/Xamarin.AndroidX.MultiDex.dll": { - "Size": 8354 + "Size": 13082 }, "assemblies/Xamarin.AndroidX.RecyclerView.dll": { "Size": 93990 }, "assemblies/Xamarin.AndroidX.SavedState.dll": { - "Size": 4969 + "Size": 5114 }, "assemblies/Xamarin.AndroidX.SwipeRefreshLayout.dll": { "Size": 13974 }, "assemblies/Xamarin.AndroidX.ViewPager.dll": { - "Size": 19073 + "Size": 19060 }, "assemblies/Xamarin.Forms.Core.dll": { - "Size": 561410 + "Size": 565831 }, "assemblies/Xamarin.Forms.Platform.Android.dll": { - "Size": 372848 + "Size": 374486 }, "assemblies/Xamarin.Forms.Platform.dll": { - "Size": 17182 + "Size": 18767 }, "assemblies/Xamarin.Forms.Xaml.dll": { - "Size": 63517 + "Size": 63655 }, "assemblies/Xamarin.Google.Android.Material.dll": { "Size": 66417 }, - "assemblies/Xamarin.Google.Guava.ListenableFuture.dll": { - "Size": 10640 - }, "classes.dex": { - "Size": 5908848 + "Size": 9458972 + }, + "classes2.dex": { + "Size": 103648 + }, + "kotlin/annotation/annotation.kotlin_builtins": { + "Size": 928 + }, + "kotlin/collections/collections.kotlin_builtins": { + "Size": 3685 + }, + "kotlin/coroutines/coroutines.kotlin_builtins": { + "Size": 200 + }, + "kotlin/internal/internal.kotlin_builtins": { + "Size": 646 + }, + "kotlin/kotlin.kotlin_builtins": { + "Size": 18640 + }, + "kotlin/ranges/ranges.kotlin_builtins": { + "Size": 3399 + }, + "kotlin/reflect/reflect.kotlin_builtins": { + "Size": 2396 }, "lib/arm64-v8a/libmono-component-marshal-ilgen.so": { "Size": 87080 @@ -236,7 +254,7 @@ "Size": 155568 }, "lib/arm64-v8a/libxamarin-app.so": { - "Size": 113968 + "Size": 115280 }, "META-INF/androidx.activity_activity.version": { "Size": 6 @@ -251,13 +269,13 @@ "Size": 6 }, "META-INF/androidx.arch.core_core-runtime.version": { - "Size": 6 + "Size": 67 }, "META-INF/androidx.asynclayoutinflater_asynclayoutinflater.version": { "Size": 6 }, "META-INF/androidx.browser_browser.version": { - "Size": 6 + "Size": 60 }, "META-INF/androidx.cardview_cardview.version": { "Size": 6 @@ -265,9 +283,12 @@ "META-INF/androidx.coordinatorlayout_coordinatorlayout.version": { "Size": 6 }, - "META-INF/androidx.core_core.version": { + "META-INF/androidx.core_core-ktx.version": { "Size": 6 }, + "META-INF/androidx.core_core.version": { + "Size": 7 + }, "META-INF/androidx.cursoradapter_cursoradapter.version": { "Size": 6 }, @@ -283,6 +304,12 @@ "META-INF/androidx.dynamicanimation_dynamicanimation.version": { "Size": 6 }, + "META-INF/androidx.emoji2_emoji2-views-helper.version": { + "Size": 6 + }, + "META-INF/androidx.emoji2_emoji2.version": { + "Size": 6 + }, "META-INF/androidx.fragment_fragment.version": { "Size": 6 }, @@ -304,9 +331,12 @@ "META-INF/androidx.lifecycle_lifecycle-livedata.version": { "Size": 6 }, - "META-INF/androidx.lifecycle_lifecycle-runtime.version": { + "META-INF/androidx.lifecycle_lifecycle-process.version": { "Size": 6 }, + "META-INF/androidx.lifecycle_lifecycle-runtime.version": { + "Size": 72 + }, "META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version": { "Size": 6 }, @@ -337,6 +367,9 @@ "META-INF/androidx.print_print.version": { "Size": 6 }, + "META-INF/androidx.profileinstaller_profileinstaller.version": { + "Size": 6 + }, "META-INF/androidx.recyclerview_recyclerview.version": { "Size": 6 }, @@ -346,6 +379,9 @@ "META-INF/androidx.slidingpanelayout_slidingpanelayout.version": { "Size": 6 }, + "META-INF/androidx.startup_startup-runtime.version": { + "Size": 6 + }, "META-INF/androidx.swiperefreshlayout_swiperefreshlayout.version": { "Size": 6 }, @@ -374,13 +410,34 @@ "Size": 1223 }, "META-INF/BNDLTOOL.SF": { - "Size": 89914 + "Size": 97490 + }, + "META-INF/com.android.tools/proguard/coroutines.pro": { + "Size": 1345 + }, + "META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro": { + "Size": 899 + }, + "META-INF/com.android.tools/r8-upto-3.0.0/coroutines.pro": { + "Size": 558 + }, + "META-INF/com.android.tools/r8/coroutines.pro": { + "Size": 1190 }, "META-INF/com.google.android.material_material.version": { "Size": 6 }, + "META-INF/kotlin-project-structure-metadata.json": { + "Size": 552 + }, + "META-INF/kotlinx_coroutines_android.version": { + "Size": 5 + }, + "META-INF/kotlinx_coroutines_core.version": { + "Size": 5 + }, "META-INF/MANIFEST.MF": { - "Size": 89787 + "Size": 97363 }, "META-INF/maven/com.google.guava/listenablefuture/pom.properties": { "Size": 96 @@ -391,6 +448,15 @@ "META-INF/proguard/androidx-annotations.pro": { "Size": 433 }, + "META-INF/proguard/coroutines.pro": { + "Size": 1363 + }, + "META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler": { + "Size": 54 + }, + "META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory": { + "Size": 52 + }, "res/anim-v21/design_bottom_sheet_slide_in.xml": { "Size": 616 }, @@ -916,6 +982,24 @@ "res/color/test_mtrl_calendar_day.xml": { "Size": 340 }, + "res/drawable-anydpi-v21/ic_call_answer_low.xml": { + "Size": 1320 + }, + "res/drawable-anydpi-v21/ic_call_answer_video_low.xml": { + "Size": 736 + }, + "res/drawable-anydpi-v21/ic_call_answer_video.xml": { + "Size": 772 + }, + "res/drawable-anydpi-v21/ic_call_answer.xml": { + "Size": 1356 + }, + "res/drawable-anydpi-v21/ic_call_decline_low.xml": { + "Size": 1492 + }, + "res/drawable-anydpi-v21/ic_call_decline.xml": { + "Size": 1528 + }, "res/drawable-hdpi-v4/abc_ab_share_pack_mtrl_alpha.9.png": { "Size": 272 }, @@ -1015,6 +1099,24 @@ "res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { "Size": 178 }, + "res/drawable-hdpi-v4/ic_call_answer_low.png": { + "Size": 472 + }, + "res/drawable-hdpi-v4/ic_call_answer_video_low.png": { + "Size": 254 + }, + "res/drawable-hdpi-v4/ic_call_answer_video.png": { + "Size": 254 + }, + "res/drawable-hdpi-v4/ic_call_answer.png": { + "Size": 472 + }, + "res/drawable-hdpi-v4/ic_call_decline_low.png": { + "Size": 375 + }, + "res/drawable-hdpi-v4/ic_call_decline.png": { + "Size": 375 + }, "res/drawable-hdpi-v4/icon.png": { "Size": 2178 }, @@ -1033,6 +1135,24 @@ "res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png": { "Size": 107 }, + "res/drawable-ldpi-v4/ic_call_answer_low.png": { + "Size": 270 + }, + "res/drawable-ldpi-v4/ic_call_answer_video_low.png": { + "Size": 199 + }, + "res/drawable-ldpi-v4/ic_call_answer_video.png": { + "Size": 199 + }, + "res/drawable-ldpi-v4/ic_call_answer.png": { + "Size": 270 + }, + "res/drawable-ldpi-v4/ic_call_decline_low.png": { + "Size": 201 + }, + "res/drawable-ldpi-v4/ic_call_decline.png": { + "Size": 201 + }, "res/drawable-ldrtl-hdpi-v17/abc_spinner_mtrl_am_alpha.9.png": { "Size": 345 }, @@ -1147,6 +1267,24 @@ "res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { "Size": 178 }, + "res/drawable-mdpi-v4/ic_call_answer_low.png": { + "Size": 317 + }, + "res/drawable-mdpi-v4/ic_call_answer_video_low.png": { + "Size": 206 + }, + "res/drawable-mdpi-v4/ic_call_answer_video.png": { + "Size": 206 + }, + "res/drawable-mdpi-v4/ic_call_answer.png": { + "Size": 317 + }, + "res/drawable-mdpi-v4/ic_call_decline_low.png": { + "Size": 264 + }, + "res/drawable-mdpi-v4/ic_call_decline.png": { + "Size": 264 + }, "res/drawable-mdpi-v4/icon.png": { "Size": 1490 }, @@ -1303,6 +1441,24 @@ "res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { "Size": 182 }, + "res/drawable-xhdpi-v4/ic_call_answer_low.png": { + "Size": 623 + }, + "res/drawable-xhdpi-v4/ic_call_answer_video_low.png": { + "Size": 290 + }, + "res/drawable-xhdpi-v4/ic_call_answer_video.png": { + "Size": 290 + }, + "res/drawable-xhdpi-v4/ic_call_answer.png": { + "Size": 623 + }, + "res/drawable-xhdpi-v4/ic_call_decline_low.png": { + "Size": 452 + }, + "res/drawable-xhdpi-v4/ic_call_decline.png": { + "Size": 452 + }, "res/drawable-xhdpi-v4/icon.png": { "Size": 3098 }, @@ -1420,6 +1576,24 @@ "res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png": { "Size": 186 }, + "res/drawable-xxhdpi-v4/ic_call_answer_low.png": { + "Size": 884 + }, + "res/drawable-xxhdpi-v4/ic_call_answer_video_low.png": { + "Size": 384 + }, + "res/drawable-xxhdpi-v4/ic_call_answer_video.png": { + "Size": 384 + }, + "res/drawable-xxhdpi-v4/ic_call_answer.png": { + "Size": 884 + }, + "res/drawable-xxhdpi-v4/ic_call_decline_low.png": { + "Size": 628 + }, + "res/drawable-xxhdpi-v4/ic_call_decline.png": { + "Size": 628 + }, "res/drawable-xxhdpi-v4/icon.png": { "Size": 4674 }, @@ -1462,6 +1636,24 @@ "res/drawable-xxxhdpi-v4/abc_text_select_handle_right_mtrl.png": { "Size": 513 }, + "res/drawable-xxxhdpi-v4/ic_call_answer_low.png": { + "Size": 1171 + }, + "res/drawable-xxxhdpi-v4/ic_call_answer_video_low.png": { + "Size": 465 + }, + "res/drawable-xxxhdpi-v4/ic_call_answer_video.png": { + "Size": 465 + }, + "res/drawable-xxxhdpi-v4/ic_call_answer.png": { + "Size": 1171 + }, + "res/drawable-xxxhdpi-v4/ic_call_decline_low.png": { + "Size": 823 + }, + "res/drawable-xxxhdpi-v4/ic_call_decline.png": { + "Size": 823 + }, "res/drawable-xxxhdpi-v4/icon.png": { "Size": 6832 }, @@ -1732,6 +1924,9 @@ "res/drawable/test_custom_background.xml": { "Size": 336 }, + "res/drawable/test_level_drawable.xml": { + "Size": 448 + }, "res/drawable/tooltip_frame_dark.xml": { "Size": 484 }, @@ -1850,7 +2045,7 @@ "Size": 1536 }, "res/layout/abc_alert_dialog_material.xml": { - "Size": 2476 + "Size": 2648 }, "res/layout/abc_alert_dialog_title_material.xml": { "Size": 1560 @@ -2279,8 +2474,8 @@ "Size": 268 }, "resources.arsc": { - "Size": 777972 + "Size": 812848 } }, - "PackageSize": 9593384 + "PackageSize": 10864931 } \ No newline at end of file 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