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