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