diff --git a/Documentation/release-notes/3753.md b/Documentation/release-notes/3753.md deleted file mode 100644 index ba91dbc4f27..00000000000 --- a/Documentation/release-notes/3753.md +++ /dev/null @@ -1,9 +0,0 @@ -### Bumps to mono/mono/2019-10@18920a83 - -This brings in a multitude of changes. - -TODO: link to Mono release notes for Mono 6.8.0. - -In particular, this updates `Mono.Security.dll` to *remove* support for TLS 1.0. -When the `$(AndroidTlsProvider)` MSBuild property is set to `legacy` or -`default`, the `btls` value will now be used. \ No newline at end of file diff --git a/Documentation/release-notes/3899.md b/Documentation/release-notes/3899.md deleted file mode 100644 index aa290b57d46..00000000000 --- a/Documentation/release-notes/3899.md +++ /dev/null @@ -1,4 +0,0 @@ -### Issues fixed - - * [GitHub 3636](https://github.com/xamarin/xamarin-android/issues/3636): - *Error inflating class android.support.v7.widget.FitWindowsLinearLayout ---> Java.Lang.ClassNotFoundException: Didn't find class "android.support.v7.widget.FitWindowsLinearLayout"* and similar errors could prevent apps built with **Code shrinker** set to **ProGuard** or **r8** from running successfully unless custom ProGuard rules were added to the project by hand. In Xamarin.Android 10.x, projects configured to use AAPT2 now pass the `--proguard` option to AAPT2 to generate default ProGuard rules that more closely match the defaults for Android Studio projects, removing the need to add custom rules for common scenarios like the `FitWindowsLinearLayout` type from the Android Support Library. diff --git a/Documentation/release-notes/3935.md b/Documentation/release-notes/3935.md deleted file mode 100644 index 3e51b222db6..00000000000 --- a/Documentation/release-notes/3935.md +++ /dev/null @@ -1,8 +0,0 @@ -### Add `$(AndroidExtraAotOptions)` MSBuild Property - -The new `$(AndroidExtraAotOptions)` MSBuild property can be used to pass -additional options to mono when precompiling assemblies in the -`` task. - -The contents of `$(AndroidExtraAotOptions)` are added to the response file, -when calling mono as a cross-compiler. diff --git a/Documentation/release-notes/3958.md b/Documentation/release-notes/3958.md deleted file mode 100644 index 82038742e24..00000000000 --- a/Documentation/release-notes/3958.md +++ /dev/null @@ -1,9 +0,0 @@ -### Breaking change for `.exe` files - -Since Xamarin.Android 9.4, `.exe` files are not considered at *build time* and are not included in the final APK for Xamarin.Android applications: - -https://github.com/xamarin/xamarin-android/commit/e390702773365ffe3da975181d0aa398d42731d0 - -To improve startup performance, Xamarin.Android no longer probes for `.exe` files at *runtime*. A standard project type such as a `netstandard` library, Xamarin.Android class library, Xamarin.Android binding library, a [shared project][shared_project], or even a portable class library will not have a problem. Consider using one of the supported project types moving forward. - -[shared_project]: https://docs.microsoft.com/xamarin/cross-platform/app-fundamentals/shared-projects diff --git a/Documentation/release-notes/3964.md b/Documentation/release-notes/3964.md deleted file mode 100644 index d4e91517e3a..00000000000 --- a/Documentation/release-notes/3964.md +++ /dev/null @@ -1,21 +0,0 @@ -### Add new AOT profiling targets - -The new `BuildAndStartAotProfiling` target builds the package with -embedded AOT profiler, sets AOT profiler socket port to -`$(AndroidAotProfilerPort)` and starts the *launch* activity. - -The new `FinishAotProfiling` target collects the AOT profiler data -from the device or the emulator through sockets port -`$(AndroidAotProfilerPort)` and writes them to -`$(AndroidAotCustomProfilePath)`. - -The default values for port and custom profile are `9999` and -`custom.aprof`. - -The `aprofutil` call may be extended with -`$(AProfUtilExtraOptions)`, to pass additional options. - -This is equivalent to: - - aprofutil $(AProfUtilExtraOptions) -s -v -f -p $(AndroidAotProfilerPort) -o "$(AndroidAotCustomProfilePath)" - diff --git a/Documentation/release-notes/3968.md b/Documentation/release-notes/3968.md deleted file mode 100644 index e1e691ff373..00000000000 --- a/Documentation/release-notes/3968.md +++ /dev/null @@ -1,4 +0,0 @@ -### Issues fixed - - * [GitHub PR 3968](https://github.com/xamarin/xamarin-android/pull/3968): - Extensions added under **Leave the following resource extensions uncompressed**, corresponding to the `$(AndroidStoreUncompressedFileExtensions)` MSBuild property, would only behave as expected if they started with the `.` dot character. diff --git a/Documentation/release-notes/3974.md b/Documentation/release-notes/3974.md deleted file mode 100644 index e415f0b2c73..00000000000 --- a/Documentation/release-notes/3974.md +++ /dev/null @@ -1,5 +0,0 @@ -### Warn about app domains usage - -Because AppDomain API will be removed in .NET 5, we check the relevant -assemblies during the build process and emit a warning when it uses -the `System.AppDomain::CreateDomain` method(s). diff --git a/Documentation/release-notes/4016.md b/Documentation/release-notes/4016.md deleted file mode 100644 index 506badf2cc0..00000000000 --- a/Documentation/release-notes/4016.md +++ /dev/null @@ -1,4 +0,0 @@ -### Issues fixed - - * [GitHub PR 4016](https://github.com/xamarin/xamarin-android/pull/4016): - *XA0110: Disabling true as it is not supported by \`aapt2\`. If you wish to use true please set True to false.* error related to the `$(AndroidExplicitCrunch)` MSBuild property was accidentally missing any mention of `$(AndroidExplicitCrunch)`. diff --git a/Documentation/release-notes/4046.md b/Documentation/release-notes/4046.md deleted file mode 100644 index ebefd105d30..00000000000 --- a/Documentation/release-notes/4046.md +++ /dev/null @@ -1,4 +0,0 @@ -## Option to enable Android resource analysis checks for Android layout files - - * [GitHub 4046](https://github.com/xamarin/xamarin-android/issues/4046): - * Adds a new build action to allow configuring message severity levels in the Xamarin Android Designer diagnostics tool. To use this in your project, add an XML configuration file that follows the format described in the [Android Resource Analysis documentation](https://aka.ms/androidresourceanalysis) and set the build action to `AndroidResourceAnalysisConfig`. \ No newline at end of file diff --git a/Documentation/release-notes/4054.md b/Documentation/release-notes/4054.md deleted file mode 100644 index bbe7903cb9c..00000000000 --- a/Documentation/release-notes/4054.md +++ /dev/null @@ -1,24 +0,0 @@ -## Bindings Projects: Support for Kotlin Libraries - -This release adds better support for creating bindings for Kotlin libraries, including: - -* Hiding Kotlin `internal` types and members -* Using Kotlin provided metadata to properly name method parameters -* Hiding Kotlin generated methods like `foo-impl` that aren't intended for public use -* Restoring Kotlin-mangled method names to their original names, such as changing `foo-V5j3Lk8` back to `foo` -* Adding support for Kotlin's native unsigned types (UInt, ULong, UShort, UByte) - -Although it was technically possible to bind a Kotlin library previously, these changes -greatly reduce the number of custom rules needed in the *Transforms\\Metadata.xml* file to produce expected bindings. - -No additional steps are needed to enable this. The binding process will detect if a `.jar` -was produced from Kotlin and will apply the needed fixes. - -``` -Important: - -Some of these changes required adding new APIs to `Java.Interop.dll`. This means that -like the binding projects themselves, Xamarin.Android application projects that -consume one of these new Kotlin library bindings must also be built using -Xamarin.Android 10.2 or higher. -``` diff --git a/Documentation/release-notes/4058.md b/Documentation/release-notes/4058.md deleted file mode 100644 index 98795fdb17c..00000000000 --- a/Documentation/release-notes/4058.md +++ /dev/null @@ -1,4 +0,0 @@ -### Issues fixed - - * [DevCom 788217](https://developercommunity.visualstudio.com/content/problem/788217/xamarin-android-resource-ids-mismatch-1.html): - A crash on startup could be encountered when the `MainLauncher` activity is implemented in a Xamarin.Android class library. diff --git a/Documentation/release-notes/4168.md b/Documentation/release-notes/4168.md deleted file mode 100644 index 97ae9ac3bcf..00000000000 --- a/Documentation/release-notes/4168.md +++ /dev/null @@ -1,14 +0,0 @@ -### Stop generating Resource.designer.fs files for F# projects - -Generation of F# resource files is no longer supported. F# projects will -now generate `Resource.designer.cs` files, which should be processed by the -[Xamarin.Android.FSharp.ResourceProvider][0] [NuGet Package][1]. Please -see [this sample code][2] as an example of how to use this Resource Provider. -This provider does not support processing of `Resource.designer.cs` files in -the intermediate output directory. The corresponding feature which is -controlled by the `AndroidUseIntermediateDesignerFile` msbuild property has -been disabled for F# projects as a result. - -[0]: https://github.com/xamarin/Xamarin.Android.FSharp.ResourceProvider -[1]: https://www.nuget.org/packages/Xamarin.Android.FSharp.ResourceProvider -[2]: https://github.com/xamarin/xamarin-forms-book-samples/tree/385ab7dd71a8d9c451e401820ac8d061cd3952b7/Chapter09/FS/DisplayPlatformInfo/Droid \ No newline at end of file diff --git a/Documentation/release-notes/4227.md b/Documentation/release-notes/4227.md deleted file mode 100644 index 358d2e29fec..00000000000 --- a/Documentation/release-notes/4227.md +++ /dev/null @@ -1,18 +0,0 @@ -#### Mono.Android.dll Nullable Reference Type Annotations - -`Mono.Android.dll` assemblies of all platform levels are now annotated with -C#8's nullable reference types (NRT). Users who opt their applications into -this feature with `enable` will receive warnings if their -code does not properly account for possible `null` values. - -General documentation for the NRT feature is available here: -https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references. - -Note: -The majority of `Mono.Android.dll` is automatically generated from the Android -Java source, including these new annotations. As such, we will not be manually -fixing places where the Android source code is not annotated correctly. - -If there is an error regarding nullability for any of the Mono.Android APIs -that Xamarin adds to the Android source (such as `JavaList` or `InputStreamAdapter`), -please file a bug so we can properly annotate our additions. \ No newline at end of file diff --git a/Documentation/release-notes/4260.md b/Documentation/release-notes/4260.md deleted file mode 100644 index cf9562f4ec3..00000000000 --- a/Documentation/release-notes/4260.md +++ /dev/null @@ -1,24 +0,0 @@ -### Linker Behavior Change - -Xamarin.Android has to consolidate changes to the Android APIs and how -they affect C# types. If you consider an example such as: - -* API 28 has an `IFoo` interface in `Mono.Android.dll` for `v9.0`. -* C# code implements `IFoo` in class `Bar`. -* API 29 adds another method to `IFoo` in `Mono.Android.dll` for - `v10.0`. -* Apps built targeting API 30 / `v10.0` will fix up `Bar` to implement - the new method, but throw `Java.Lang.AbstractMethodError` if it was - called. - -If the linker didn't make this change, you would instead hit a crash -when trying to create an instance of type `Bar` such as: - - System.TypeLoadException: VTable setup of type 'Bar' failed. - -Xamarin.Android has some performance improvements to the linker in -this area. Existing apps *should* not be affected. - -Submit a [bug report][bug] if you find an issue in this area. - -[bug]: https://github.com/xamarin/xamarin-android/wiki/Submitting-Bugs,-Feature-Requests,-and-Pull-Requests diff --git a/Documentation/release-notes/4302.md b/Documentation/release-notes/4302.md deleted file mode 100644 index 13428ebdac3..00000000000 --- a/Documentation/release-notes/4302.md +++ /dev/null @@ -1,11 +0,0 @@ -### App startup performance - - * [GitHub PR 4302](https://github.com/xamarin/xamarin-android/pull/4302): - Avoid unneeded calls to `GetCustomAttribute()` during app startup for the - common case where an app has no types decorated with the - `[JniAddNativeMethodRegistration]` attribute. Additionally, instead of - using a managed method to propagate uncaught exceptions from Java, use a - Java method that calls into the unmanaged Xamarin.Android runtime. These - changes reduced the time to display the first screen of a small test - Xamarin.Forms app from about 730 milliseconds to about 700 milliseconds for - a Release configuration build on a Google Pixel 3 XL device. diff --git a/Documentation/release-notes/4308.md b/Documentation/release-notes/4308.md deleted file mode 100644 index 894155e630d..00000000000 --- a/Documentation/release-notes/4308.md +++ /dev/null @@ -1,22 +0,0 @@ -### Build and deployment performance - -The `SignAndroidPackage` target will no longer execute the command: - -``` -keytool -list -keystore $(AndroidSigningKeyStore) --storepass $(AndroidSigningStorePass) -v -``` - -This was originally done [as a convenience][show-sha1], but this -adds ~200ms to the execution time of the `SignAndroidPackage` target, -which is executed as part of the inner development loop and the -Apply Changes feature within the UI Designer. - -Running `keytool -list` does *nothing* to benefit the development loop, -while the archive workflow within Visual Studio can show the same information. - -[show-sha1]: https://xamarin.github.io/bugzilla-archives/13/13154/bug.html - -If you still need to determine the Keystore Signature, please follow the steps -in the article [Finding your Keystore's Signature][keystore-sig]. - -[keystore-sig]: https://docs.microsoft.com/en-us/xamarin/android/deploy-test/signing/keystore-signature?tabs=windows diff --git a/Documentation/release-notes/4320.md b/Documentation/release-notes/4320.md deleted file mode 100644 index af3486727e5..00000000000 --- a/Documentation/release-notes/4320.md +++ /dev/null @@ -1,8 +0,0 @@ -### Build and deployment performance - - * [GitHub PR 4320](https://github.com/xamarin/xamarin-android/pull/4320): - Update to LibZipSharp 1.0.10 which uses `System.Buffers.ArrayPool` - instead of `byte[]` to save on allocations. This reduced the combined time - for the `ResolveLibraryProjectImports` and `BuildApk` tasks from about 5.3 - seconds to about 5.0 seconds for a small test Xamarin.Forms app on an - initial clean build. \ No newline at end of file diff --git a/Documentation/release-notes/4350.md b/Documentation/release-notes/4350.md deleted file mode 100644 index 1afb689f259..00000000000 --- a/Documentation/release-notes/4350.md +++ /dev/null @@ -1,4 +0,0 @@ -### App startup performance - -`Java.Interop.JniRuntime.JniTypeManager.GetTypeSignature()` has been -optimized to reduce process startup time. diff --git a/Documentation/release-notes/4360.md b/Documentation/release-notes/4360.md deleted file mode 100644 index 7389a6db1be..00000000000 --- a/Documentation/release-notes/4360.md +++ /dev/null @@ -1,43 +0,0 @@ -### More aggressive incremental clean of `obj` directory for certain scenarios - -In previous versions, Xamarin.Android reserved a costlier, more complete -incremental clean of the intermediate output directory for special scenarios -where a NuGet package changed or where the `$(AndroidPackageNamingPolicy)` -MSBuild property changed. Xamarin.Android 10.3 expands this behavior to -cover several other MSBuild properties: - - *`$(AndroidAotMode)` - *`$(AndroidCreatePackagePerAbi)` - *`$(AndroidDexTool)` - *`$(AndroidEmbedProfilers)` - *`$(AndroidEnableProfiledAot)` - *`$(AndroidExplicitCrunch)` - *`$(AndroidGenerateJniMarshalMethods)` - *`$(AndroidIncludeDebugSymbols)` - *`$(AndroidLinkMode)` - *`$(AndroidLinkSkip)` - *`$(AndroidLinkTool)` - *`$(AndroidNdkDirectory)` - *`$(AndroidPackageFormat)` - *`$(AndroidSdkBuildToolsVersion)` - *`$(AndroidSdkDirectory)` - *`$(AndroidSequencePointsMode)` - *`$(AndroidUseLatestPlatformSdk)` - *`$(AndroidUseSharedRuntime)` - *`$(AotAssemblies)` - *`$(BundleAssemblies)` - *`$(EmbedAssembliesIntoApk)` - *`$(JavaSdkDirectory)` - *`$(MonoSymbolArchive)` - *`$(OS)` - *`$(TargetFrameworkVersion)` - *`$(XamarinAndroidVersion)` - -This should reduce the number of cases where project authors need to run a full -clean by hand after changing one of these properties, such as after updating to -a new Xamarin.Android version. - -Changes to these particular properties already triggered additional build -steps, so this new behavior should not noticeably increase incremental build -times. As in the past, to get the best incremental build times, avoid changing -these properties back and forth too much between builds. diff --git a/Documentation/release-notes/4375.md b/Documentation/release-notes/4375.md deleted file mode 100644 index a23ecfcdf08..00000000000 --- a/Documentation/release-notes/4375.md +++ /dev/null @@ -1,15 +0,0 @@ -### AndroidExplicitCrunch feature removed - -In previous Xamarin.Android versions, setting the -`AndroidExplicitCrunch` MSBuild property to `true` would configure the -build to [crunch][crunch-upstream] PNG drawable resources using a -separate MSBuild task before passing them to AAPT. - -This feature was never compatible with projects configured to use -AAPT2 and was automatically disabled in those projects. For projects -configured to use the older AAPT tool, this feature could cause builds -to rerun AAPT on every build. Due to these limitations, this feature has -now been removed from Xamarin.Android. Project authors who added this -property to their *.csproj* files in the past can now remove it. - -[crunch-upstream]: https://developer.android.com/topic/performance/reduce-apk-size#crunch diff --git a/Documentation/release-notes/4385.md b/Documentation/release-notes/4385.md deleted file mode 100644 index 06e1e12ac27..00000000000 --- a/Documentation/release-notes/4385.md +++ /dev/null @@ -1,7 +0,0 @@ -#### Bindings projects - - * [GitHub PR 4385](https://github.com/xamarin/xamarin-android/pull/4385): - *You have Jar libraries, lint.jar, lint.jar, ... that have the identical - name with inconsistent file contents* build error could prevent apps from - consuming custom bindings libraries for certain Java libraries. This was - discovered while binding new versions of the AndroidX libraries. diff --git a/Documentation/release-notes/4395.md b/Documentation/release-notes/4395.md deleted file mode 100644 index 4a32ce1c397..00000000000 --- a/Documentation/release-notes/4395.md +++ /dev/null @@ -1,7 +0,0 @@ -### Build and deployment performance - - * [GitHub PR 4395](https://github.com/xamarin/xamarin-android/pull/4395): - Remove temporary file usage in the `` MSBuild - task. This reduced the time for this MSBuild task from 613ms to 508ms - in a real-world project in an initial clean build or incremental builds - with Android resource changes. diff --git a/Documentation/release-notes/4397.md b/Documentation/release-notes/4397.md deleted file mode 100644 index f2c4353929e..00000000000 --- a/Documentation/release-notes/4397.md +++ /dev/null @@ -1,6 +0,0 @@ -### Build and deployment performance - - * [GitHub PR 596](https://github.com/xamarin/java.interop/pull/596): - Use `File.Exists` instead of `DirectoryGetFile`. This reduced the time for the - `LinkAssembliesNoShrink` task from about 711ms to 426ms for a small test - Xamarin.Forms app on an initial clean build. diff --git a/Documentation/release-notes/4487.md b/Documentation/release-notes/4487.md deleted file mode 100644 index 3de1e92b0c8..00000000000 --- a/Documentation/release-notes/4487.md +++ /dev/null @@ -1,6 +0,0 @@ -#### Application behavior on device and emulator - - * [GitHub 4415](https://github.com/xamarin/xamarin-android/issues/4415): - Starting in Xamarin.Android 10.2.100.7, *System.NotSupportedException: - Cannot create instance of type ... no Java peer type found* caused certain - apps to crash during launch after incremental deployments. diff --git a/Documentation/release-notes/4505.md b/Documentation/release-notes/4505.md deleted file mode 100644 index a4014900710..00000000000 --- a/Documentation/release-notes/4505.md +++ /dev/null @@ -1,8 +0,0 @@ -#### Application and library build and deployment - - * [GitHub 4478](https://github.com/xamarin/xamarin-android/issues/4478), - [GitHub 4486](https://github.com/xamarin/xamarin-android/issues/4486): - On macOS, starting in Xamarin.Android 10.2, *\[INSTALL_FAILED_INVALID_APK: - ... base.apk code is missing\]* and *Module 'base' has no dex files* - prevented deploying successfully for certain projects configured to use the - DX DEX compiler. \ No newline at end of file diff --git a/Documentation/release-notes/4509.md b/Documentation/release-notes/4509.md deleted file mode 100644 index 183e087db19..00000000000 --- a/Documentation/release-notes/4509.md +++ /dev/null @@ -1,142 +0,0 @@ -### R8 configured to suppress common build errors - -Xamarin.Android now configures R8 to skip emitting an error for Java dependency -warnings such as: - -``` -R8 : warning : Missing class: org.apache.http.client.methods.HttpEntityEnclosingRequestBase -R8 : warning : Missing class: java.lang.ClassValue -R8 : error : Compilation can't be completed because some library classes are missing. -``` - -This allows a more gradual transition to R8, particularly for projects that are -using R8 for multidex only and not code shrinking. - -Although R8 warnings will no longer cause the build to fail, project authors are -encouraged to address the warnings at their earliest convenience and then set R8 -back to its original stricter behavior. To restore the original behavior, set -the `AndroidR8IgnoreWarnings` MSBuild property to `false` in the _.csproj_ file: - -```xml - - false - -``` - -#### Example: How to solve _Missing class: org.apache.http.client_ - -``` -R8 : warning : Missing class: org.apache.http.client.methods.HttpEntityEnclosingRequestBase -``` - -##### Best solution - -Update any NuGet packages or Java dependencies that use the Apache HTTP client -to newer versions that use `java.net.HttpURLConnection` instead. This is the -best solution because starting in Android 6.0 Marshmallow (API level 23), [the -Apache HTTP client is deprecated in favor of the more efficient -`HttpURLConnection`][android-6-apache-http]. - -##### Second-best solution - -If new library versions are not yet available that use `HttpURLConnection`, -then, where possible, update any NuGet packages that use Apache HTTP client to -newer versions that include a `UsesLibraryAttribute` for org.apache.http.legacy: - -```cs -[assembly: UsesLibrary("org.apache.http.legacy", false)] -``` - -NuGet package authors who cannot yet update all dependencies to use -`HttpURLConnection` are encouraged to add this attribute to their projects as -soon as possible. - -This attribute automatically generates the following element under the -`` node of _AndroidManifest.xml_ for any app that references the -NuGet package: - -```xml - -``` - -##### Fallback solution - -If updated NuGet package versions are not yet available with the attribute, then -add the same `UsesLibraryAttribute` directly to the application project instead: - -```cs -[assembly: UsesLibrary("org.apache.http.legacy", false)] -``` - -##### Background information - -The _Missing class: org.apache.http.client_ warning indicates that the app has a -Java dependency on the Apache HTTP client. Starting in [Android 6.0 Marshmallow -(API level 23)][android-6-apache-http], that client was deprecated and moved out -of _android.jar_ into its own _org.apache.http.legacy.jar_ library. As a -result, applications that use Apache HTTP client on Android 6.0 or higher will -only be able to call the APIs successfully if they declare the use of -org.apache.http.legacy via a [``][uses-library] element in -_AndroidManifest.xml_. Otherwise, the API calls will fail with exceptions -similar to: - -``` -Java.Lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/impl/client/DefaultHttpClient -``` - -#### Example: How to solve _Missing class: java.lang.ClassValue_ - -``` -R8 : warning : Missing class: java.lang.ClassValue -``` - -##### Solution - -It is typically safe to suppress this warning: - - 1. Add a new text file to the project, named for example _proguard-rules.pro_. - - 2. Set the contents of the file to: - - ``` - -dontwarn java.lang.ClassValue - ``` - - 3. Edit the _.csproj_ file in a text editor and add `--pg-conf - proguard-rules.pro` to the `AndroidR8ExtraArguments` MSBuild property, for - example by adding the following lines: - - ```xml - - --pg-conf proguard-rules.pro - - ``` - - (If the project is configured to use R8 for code shrinking, an easier option - is to set the **Build Action** of _proguard-rules.pro_ to - **ProguardConfiguration** in the Visual Studio **Properties** window, but - that approach is not yet supported when using R8 for multidex only.) - -##### Background information - -The _Missing class: java.lang.ClassValue_ warning indicates that the app -references a library that uses `java.lang.ClassValue`. Typically this happens -when the app references a library that was built to run on multiple Java -platforms. On Android, the `java.lang.ClassValue` type does not exist in the -[java.lang package][java-lang-android]. - -One known scenario that produces this warning is when an app references the -Xamarin.Firebase.Firestore NuGet package, which depends on the cross-platform -Google Guava library. Guava uses `java.lang.ClassValue`, but it only uses it on -platforms where it is available, so it is safe to suppress the _Missing class: -java.lang.ClassValue_ warning for that library. - -A future version of the Xamarin.Guava.Google NuGet package will provide the -`-dontwarn java.lang.ClassValue` R8 rule to suppress the warning automatically. -In the mean time, application authors can suppress the warning by adding the -rule to their app projects directly. - -[xa-10-2-d8]: https://docs.microsoft.com/xamarin/android/release-notes/10/10.2#d8-enabled-by-default-for-all-projects -[android-6-apache-http]: https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-apache-http-client -[uses-library]: https://developer.android.com/guide/topics/manifest/uses-library-element -[java-lang-android]: https://developer.android.com/reference/java/lang/package-summary diff --git a/Documentation/release-notes/4554.md b/Documentation/release-notes/4554.md deleted file mode 100644 index f1fda9f1d18..00000000000 --- a/Documentation/release-notes/4554.md +++ /dev/null @@ -1,6 +0,0 @@ -#### Application and library build and deployment - - * *error CS1681: You cannot redefine the global extern alias* prevented - building app projects successfully if the *.csproj* file included `global` - in the `` metadata element of a referenced - Xamarin.Android class library. \ No newline at end of file diff --git a/Documentation/release-notes/4567.md b/Documentation/release-notes/4567.md deleted file mode 100644 index 02dbf23bd2c..00000000000 --- a/Documentation/release-notes/4567.md +++ /dev/null @@ -1,32 +0,0 @@ -### Preliminary JDK 11 Support - -Xamarin.Android can now use JDK 11 to build libraries and applications. - -JDK 11 is required in order to use Android SDK Build-tools r30, -currently a release candidate. Future versions of the Android SDK -*may* require JDK 11 for more scenarios. JDK 11 *is not required* -at this point in time. - -Project authors can try switching to JDK 11 now to prepare -potential future JDK 11 requirements. - -To do so: - - 1. Install JDK 11, for example - [JetBrains Runtime](https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime) - - 2. Tell Xamarin.Android to use JDK 11. This can be done within - [Visual Studio](https://docs.microsoft.com/en-us/xamarin/android/troubleshooting/questions/update-jdk?tabs=windows), - or can be done by setting the the `$(JavaSdkDirectory)` MSBuild - property to refer to the root of the JDK installation from (1). - -#### Known Issues - -When JDK 11 is used, the `@(JavaSourceJar)` Build action is not supported, -and binding projects will not parse Javadoc to determine parameter names. -This may result in different parameter names for existing bindings projects. -Authors of bindings projects affected by this change are recommended to -continue to use JDK 8 to build the bindings projects until this issue is -resolved. - -The fix is being tracked as: https://github.com/xamarin/xamarin-android/issues/4789 diff --git a/Documentation/release-notes/4577.md b/Documentation/release-notes/4577.md deleted file mode 100644 index 209651dbe9e..00000000000 --- a/Documentation/release-notes/4577.md +++ /dev/null @@ -1,42 +0,0 @@ -### Bindings projects XA4231 warning for deprecated jar2xml parser - -Any bindings project that has the `AndroidClassParser` MSBuild property set to -the old `jar2xml` parser or any other unrecognized value will now get a XA4231 -build warning: - -``` -warning XA4231: The Android class parser 'jar2xml' is deprecated and will be removed in a future version of Xamarin.Android. Update the project properties to use 'class-parse' instead. -``` - -To resolve this warning, update the **Android Class Parser** setting in the Visual -Studio project property pages or the **.jar file parser** setting in Visual -Studio for Mac to **class-parse**. This corresponds to the `class-parse` value -for the `AndroidClassParser` MSBuild property in the _.csproj_ file: - -```xml - - class-parse - -``` - -### Bindings projects XA4232 warning for deprecated XamarinAndroid code generation target - -Any bindings project that has the `AndroidCodegenTarget` MSBuild property set to -the old `XamarinAndroid` code generation target or any other unrecognized value -will now get a XA4232 build warning: - -``` -warning XA4232: The Android code generation target value 'XamarinAndroid' is deprecated and will be removed in a future version of Xamarin.Android. Update the project properties to use 'XAJavaInterop1'. -``` - -To resolve this warning, update the **Android Codegen target** setting in the -Visual Studio project property pages or the **Code generation target** setting -in Visual Studio for Mac to **XAJavaInterop1**. This corresponds to the -`XAJavaInterop1` value for the `AndroidCodegenTarget` MSBuild property in the -_.csproj_ file: - -```xml - - XAJavaInterop1 - -``` diff --git a/Documentation/release-notes/4583.md b/Documentation/release-notes/4583.md deleted file mode 100644 index 6c360f18d1a..00000000000 --- a/Documentation/release-notes/4583.md +++ /dev/null @@ -1,17 +0,0 @@ -### Tidier IntelliSense suggestions for Java.Lang.Object subclasses - -`Java.Lang.Object` contains several properties and methods that are -required to be `public` to support bindings, but are not intended -to be called by users. Use `[EditorBrowser]` to hide them from -IntelliSense, making it easier to find useful members. - -[IntelliSense cleanup)[images/4583.png] - -### Issues fixed - -#### IDE compatibility - - * [GitHub 4582](https://github.com/xamarin/xamarin-android/issues/4582): - Some `Java.Lang.Object` properties and methods like `Handle` and - `PeerReference` appeared in IntelliSense suggestions even though they were - primarily intended for use only in generated code. \ No newline at end of file diff --git a/Documentation/release-notes/4589.md b/Documentation/release-notes/4589.md deleted file mode 100644 index 39f638be796..00000000000 --- a/Documentation/release-notes/4589.md +++ /dev/null @@ -1,7 +0,0 @@ -#### Application behavior on device and emulator - - * [GitHub PR 4582](https://github.com/xamarin/xamarin-android/pull/4589): - `ObjectDisposedException` could in theory be thrown during cancellation of - `AndroidClientHandler` requests, depending on the particular timing of - cancellation and object disposal. The time window where this can happen - is now narrower. diff --git a/Documentation/release-notes/4614.md b/Documentation/release-notes/4614.md deleted file mode 100644 index 03bb9b64c90..00000000000 --- a/Documentation/release-notes/4614.md +++ /dev/null @@ -1,9 +0,0 @@ -* [GitHub PR 4614](https://github.com/xamarin/xamarin-android/pull/4614): - Syntax errors in `AndroidManifest.xml` always referred to the generated - version of the file (like - `obj\Debug\90\android\manifest\AndroidManifest.xml`), even when the syntax - error was also present in the hand-written input - `Properties\AndroidManifest.xml` file. Manifest errors are now fixed up to - point to the `Properties\AndroidManifest.xml` file. An additional note will - be added to the message to inform the user that the issue might *not* be in - that file, but might be caused by code. \ No newline at end of file diff --git a/Documentation/release-notes/4640.md b/Documentation/release-notes/4640.md deleted file mode 100644 index 8148530dbb6..00000000000 --- a/Documentation/release-notes/4640.md +++ /dev/null @@ -1,5 +0,0 @@ -#### Application and library build and deployment - - * [GitHub PR 79](https://github.com/xamarin/xamarin-android-tools/commit/f473ff9): - May address an `ArgumentException` observed on Windows machine when the - Registry contains an invalid path to the Android SDK. diff --git a/Documentation/release-notes/4653.md b/Documentation/release-notes/4653.md deleted file mode 100644 index 359d04cc36e..00000000000 --- a/Documentation/release-notes/4653.md +++ /dev/null @@ -1,17 +0,0 @@ -### Preview bindings for Android 11 Developer Preview 4 - -This version includes preview bindings for the [fourth Developer Preview of -Android 11][android-11-preview-4] from Google. See the [Android 11 Developer -Preview documentation][android-11-upstream] for additional information about the -behavior and API changes in this new Android version. To try the bindings for -the new APIs in a Xamarin.Android project, set **Compile using Android version: -(Target Framework)** to **Android 10.0.99 (R)** under the **Application** tab of -the Visual Studio project property pages. This sets the -`TargetFrameworkVersion` property to `v10.0.99` in the _.csproj_ file: - -```xml -v10.0.99 -``` - -[android-11-preview-4]: https://android-developers.googleblog.com/2020/05/android-11-beta-plans.html -[android-11-upstream]: https://developer.android.com/preview \ No newline at end of file diff --git a/Documentation/release-notes/4668.md b/Documentation/release-notes/4668.md deleted file mode 100644 index 185e953f956..00000000000 --- a/Documentation/release-notes/4668.md +++ /dev/null @@ -1,8 +0,0 @@ -### bundletool version update to 0.14.0 - -The version of the [`bundletool`][bundletool] executable included in -Xamarin.Android has been updated from 0.10.2 to [0.14.0][bundletool-0.14.0], -bringing in several improvements and bug fixes. - -[bundletool]: https://developer.android.com/studio/command-line/bundletool -[bundletool-0.14.0]: https://github.com/google/bundletool/releases/tag/0.14.0 diff --git a/Documentation/release-notes/4670.md b/Documentation/release-notes/4670.md deleted file mode 100644 index c6ff418ca54..00000000000 --- a/Documentation/release-notes/4670.md +++ /dev/null @@ -1,4 +0,0 @@ -### D8/R8 version update to 1.6.82 - -The version of the [D8 dexer and R8 shrinker](https://r8.googlesource.com/r8) -included in Xamarin.Android has been updated from 1.5.68 to 1.6.82. diff --git a/Documentation/release-notes/4683.md b/Documentation/release-notes/4683.md deleted file mode 100644 index 2be8824b672..00000000000 --- a/Documentation/release-notes/4683.md +++ /dev/null @@ -1,12 +0,0 @@ -### ProGuard version update to 6.2.2 - -The version of ProGuard included in Xamarin.Android has been updated -from 5.3.2 to [6.2.2][proguard], bringing in a number of improvements -and bug fixes. - -> [!NOTE] -> ProGuard is only relevant for projects configured to use the older -> DX DEX compiler. Project authors are recommended to update to the -> newer D8 DEX compiler at their earliest convenience. - -[proguard]: https://www.guardsquare.com/products/proguard/manual/versions diff --git a/Documentation/release-notes/4686.md b/Documentation/release-notes/4686.md deleted file mode 100644 index 679ee8c7d39..00000000000 --- a/Documentation/release-notes/4686.md +++ /dev/null @@ -1,66 +0,0 @@ -### Smaller app package sizes - -This version introduces compression of managed assemblies by default for Release -configuration builds, resulting in significantly smaller APK and App Bundle -sizes. Assemblies are compressed with the [LZ4][lz4] algorithm during builds -and then decompressed on device during app startup. - -For a small example Xamarin.Forms application, this reduced the APK size from -about 23 megabytes to about 17 megabytes while only increasing the time to -display the first page of the app from about 780 milliseconds to about 790 -milliseconds in the least favorable configuration. - -If needed, the new behavior can been disabled for a particular project by -setting the `AndroidEnableAssemblyCompression` MSBuild property to `false` in -the _.csproj_ file: - -```xml - - false - -``` - -> [!NOTE] -> This feature is intended to replace the older **Bundle assemblies into native -> code** Visual Studio Enterprise feature for purposes of app size savings. The -> `AndroidEnableAssemblyCompression` property takes precedence if both features -> are enabled. Project authors who no longer need the **Bundle assemblies into -> native code** feature enabled can now disable it or remove the -> `BundleAssemblies` MSBuild property from the _.csproj_ file: -> -> ```diff -> -> True -> portable -> True -> bin\Release\ -> TRACE -> prompt -> 4 -> true -> False -> SdkOnly -> True -> - true -> -> ``` - -#### Background information - -For comparison, for the small test Xamarin.Forms application, the **Bundle -assemblies into native code** feature increases the APK size from about 23 -megabytes to about 26 megabytes while increasing the time to display the -first page of the app from about 780 milliseconds to about 850 milliseconds -in the least favorable configuration. Size comparison is for an application -which enables **all** of the ABIs supported by Xamarin.Android. It needs to -be noted that in this scenario, the **Bundle assemblies into native code** -feature will add a copy of the shared library with compressed assemblies per -ABI, thus the size increase. The new compression shares all the compressed -assemblies between all the ABIs, thus enabling a new one won't cause the APK -to grow. If sizes are compared for application shipping just a single ABI, the -**Bundle assemblies into native code** feature decreases the the APK size from -around 16 megabytes to around 7.5 megabytes, while the new scheme decreases the -size to around 8 megabytes. Display times are not affected by the number of ABIs -present in the APK. - -[lz4]: https://github.com/lz4/lz4 diff --git a/Documentation/release-notes/4690.md b/Documentation/release-notes/4690.md deleted file mode 100644 index 6044120137d..00000000000 --- a/Documentation/release-notes/4690.md +++ /dev/null @@ -1,17 +0,0 @@ -# Fast Deployment Updates. - -As part of this update the fast deplyment system used for Debugging apps has -been changed. The shared runtime is now no longer used or required. -The Platform package has also been make obsolete. - -The new system also no longer uses the `external` drive for the fast deployment -files. All of the files and tooling are now stored in the applications' `internal` -directory. This has an advantage in that when the application is uninstalled all -if the files and the tooling will be removed as well. - -The new system will not work on any devices older than API 21. This is because it -relys on features that only work from API 21 onwards. Also API 21 is the lowest -supported platform for the runtime, so running and debugging on older devices will -be impossible. - -See [Documentation](~/android/deploy-test/building-apps/build-process.md#FastDeployment) for more details. \ No newline at end of file diff --git a/Documentation/release-notes/4724.md b/Documentation/release-notes/4724.md deleted file mode 100644 index 5b32c0f4e6a..00000000000 --- a/Documentation/release-notes/4724.md +++ /dev/null @@ -1,8 +0,0 @@ -#### Application behavior on device and emulator - - - [Developer Community 1030901](https://developercommunity.visualstudio.com/content/problem/1030901/localization-in-android-doesnt-work-4.html), - [GitHub 4664](https://github.com/xamarin/xamarin-android/issues/4664): - Starting in Xamarin.Android 10.3, localized resources from _.resx_ files were - no longer deployed when building and deploying from within Visual Studio to - an attached device or emulator. (In contrast, clean builds started via the - **Build > Archive** command or on the command line worked as expected.) diff --git a/Documentation/release-notes/4725.md b/Documentation/release-notes/4725.md deleted file mode 100644 index 6452265f0ae..00000000000 --- a/Documentation/release-notes/4725.md +++ /dev/null @@ -1,9 +0,0 @@ -#### Application Mono Framework behavior on device and emulator - -- [GitHub 4713](https://github.com/xamarin/xamarin-android/issues/4713): - Starting in Xamarin.Android 10.3, SIGSEGV during - `monodroid_typemap_java_to_managed` could cause apps to abort if the - application was built with the `$(AndroidEnablePreloadAssemblies)` - set to `False`, that is assembly preload at application startup - would be turned off and the application happened to use a managed - type which resides in an assembly not yet loaded by the runtime. diff --git a/Documentation/release-notes/4786.md b/Documentation/release-notes/4786.md deleted file mode 100644 index 77b83207c64..00000000000 --- a/Documentation/release-notes/4786.md +++ /dev/null @@ -1,14 +0,0 @@ -#### Application behavior on device and emulator - -- [Developer Community 1045818][0]: Starting in Xamarin.Android 10.3 - on Windows, errors similar to _Java.Lang.RuntimeException: 'Font - asset not found Fonts/fontello.ttf'_ could cause apps to abort - unexpectedly on device after they were updated and redeployed from - Visual Studio on Windows. There is a [known issue][1] with the - `aapt2` tool from the Android SDK that produces mixed path - separators in the `.apk` for `AndroidAsset` files containing - sub-directories. This scenario could cause the file to be missing - after an incremental build. - -[0]: https://developercommunity.visualstudio.com/content/problem/1045818/after-update-vs-2019-xamarin-app-debug-throws-exce.html -[1]: https://issuetracker.google.com/issues/120436372 diff --git a/Documentation/release-notes/4790.md b/Documentation/release-notes/4790.md deleted file mode 100644 index 21a5ac3e3df..00000000000 --- a/Documentation/release-notes/4790.md +++ /dev/null @@ -1,7 +0,0 @@ -#### Application and library build and deployment - - * [GitHub 4790](https://github.com/xamarin/xamarin-android/issues/4790): - Fixes a build error such as _Error: can't open typemaps.x86.s for - reading: No such file or directory_ after the - `$(AndroidSupportedAbis)` MSBuild property was changed from a - previous build. diff --git a/Documentation/release-notes/4805.md b/Documentation/release-notes/4805.md deleted file mode 100644 index 81eb9242890..00000000000 --- a/Documentation/release-notes/4805.md +++ /dev/null @@ -1,9 +0,0 @@ -#### Application behavior on device and emulator - - - [GitHub 4805](https://github.com/xamarin/xamarin-android/issues/4805): - Starting in Xamarin.Android 10.3, localized resources from _.resx_ - files in Xamarin.Android application projects were no longer - deployed when building and deploying from within Visual Studio to - an attached device or emulator. (In contrast, clean builds - started via the **Build > Archive** command or on the command line - worked as expected.) diff --git a/Documentation/release-notes/4818.md b/Documentation/release-notes/4818.md deleted file mode 100644 index 4d3e27ab651..00000000000 --- a/Documentation/release-notes/4818.md +++ /dev/null @@ -1,5 +0,0 @@ -#### Application and library build and deployment - - * [GitHub 4818](https://github.com/xamarin/xamarin-android/issues/4818): - Applications using `AndroidAotMode=Hybrid` did not properly strip - away the IL from the resulting .NET assemblies. diff --git a/Documentation/release-notes/4823.md b/Documentation/release-notes/4823.md deleted file mode 100644 index 41260123d5b..00000000000 --- a/Documentation/release-notes/4823.md +++ /dev/null @@ -1,19 +0,0 @@ -#### Application behavior on device and emulator - - * [GitHub 661](https://github.com/xamarin/java.interop/issues/661): - Fixes a `TypeLoadException` that could result when an app is built - with the API-R preview bindings, `$(TargetFrameworkVersion)`=v10.0.99, - when instantiating a type which implements an interface which contains - default interface members. - -#### Application and library build and deployment - - * [GitHub 515](https://github.com/xamarin/java.interop/issues/515): - Allow `.csv` files to declare C# enumeration members without requiring - a corresponding Java field. - -#### Android API binding - - * [GitHub 588](https://github.com/xamarin/java.interop/issues/588): - Don't invalidate an interface binding if it contains a static method - that couldn't be bound. diff --git a/Documentation/release-notes/4825.md b/Documentation/release-notes/4825.md deleted file mode 100644 index 7f6f61fde06..00000000000 --- a/Documentation/release-notes/4825.md +++ /dev/null @@ -1,47 +0,0 @@ -#### Application and library build and deployment - -Since the initial ProGuard support was added to Xamarin.Android, an -undocumented `$(ProguardConfigFiles)` MSBuild property could be used -as an alternative to using the `@(ProguardConfiguration)` item group: - -```xml - - - {sdk.dir}tools\proguard\proguard-android.txt; - {intermediate.common.xamarin}; - {intermediate.references}; - {intermediate.application}; - @(ProguardConfiguration); - - -``` - -Xamarin.Android then used string replacements such as `{sdk.dir}` -instead of standard MSBuild. The string replacement behavior has been -removed from Xamarin.Android. - -If your project is currently using `$(ProguardConfigFiles)` such as: - -```xml - - - proguard1.cfg; - proguard2.cfg; - - -``` - -It is recommended to use the `@(ProguardConfiguration)` item group -instead: - -```xml - - - - -``` - -In Visual Studio, you can add text files with a `Build Action` of -`ProguardConfiguration` as [documented][0]. - -[0]: https://docs.microsoft.com/xamarin/android/deploy-test/release-prep/proguard#customizing-proguard diff --git a/Documentation/release-notes/4867.md b/Documentation/release-notes/4867.md deleted file mode 100644 index ff5a0f8edad..00000000000 --- a/Documentation/release-notes/4867.md +++ /dev/null @@ -1,11 +0,0 @@ -### `logcat-parse` Improvements - -`logcat-parse` now supports parsing the `adb logcat` output format used -on Android 10 devices. - - -#### Binding projects - - - [Java.Interop GitHub PR 672](https://github.com/xamarin/java.interop/pull/672): - In bindings projects, nested Java types with `protected` visibility within - `sealed` types are now generated with `private` visibility, avoiding C# warning CS0628. diff --git a/Documentation/release-notes/4975.md b/Documentation/release-notes/4975.md deleted file mode 100644 index ce549175dba..00000000000 --- a/Documentation/release-notes/4975.md +++ /dev/null @@ -1,6 +0,0 @@ -### Build and deployment performance - -The `` MSBuild task caches information in-memory to -improve build times. Incremental builds of Xamarin.Forms' source code -were improved from 165ms to 99ms on a test system. This will have a -bigger impact on large solutions. diff --git a/Documentation/release-notes/4982.md b/Documentation/release-notes/4982.md deleted file mode 100644 index dd09647c67c..00000000000 --- a/Documentation/release-notes/4982.md +++ /dev/null @@ -1,5 +0,0 @@ -#### Binding projects - -* [GitHub Issue 4565](https://github.com/xamarin/xamarin-android/issues/4565): - *Missing class: com.android.tools.lint...* build error could prevent apps from - consuming custom binding libraries for `.AAR` files. diff --git a/Documentation/release-notes/5001.md b/Documentation/release-notes/5001.md deleted file mode 100644 index 83b915929b8..00000000000 --- a/Documentation/release-notes/5001.md +++ /dev/null @@ -1,8 +0,0 @@ -#### Application and library build and deployment - -* [Developer Community 1144021][0] and - [GitHub Issue 4990](https://github.com/xamarin/xamarin-android/issues/4990): - *ADB0010: [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]* - build error could prevent apps from being deployed after `AndroidManifest.xml` changes. - -[0]: https://developercommunity.visualstudio.com/content/problem/1144021/vs-1670-compile-and-archive-issues.html diff --git a/Documentation/release-notes/5032.md b/Documentation/release-notes/5032.md deleted file mode 100644 index 2ea57e14b42..00000000000 --- a/Documentation/release-notes/5032.md +++ /dev/null @@ -1,21 +0,0 @@ -### Tool and library version updates - -#### apksigner from Android SDK Build-Tools 30.0.3 now included - -Xamarin.Android now packages its own copy of the -[`apksigner`][apksigner] executable. The current included version is -[aligned with Android SDK Build-Tools 30.0.3][apksigner-30.0.3]. - -Attempting to use the `apksigner` from Android SDK Build-Tools 30.0 -with Java JDK 8 results in the following error (as mentioned in the -[Xamarin.Android 11.0 release-notes][xa-11.0]): - - java.lang.UnsupportedClassVersionError: com/android/apksigner/ApkSignerTool has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 - -Using the `apksigner` packaged with Xamarin.Android will allow -Xamarin.Android to use Android SDK Build-Tools 30.0 along with Java -JDK 8. - -[apksigner]: https://developer.android.com/studio/command-line/apksigner -[apksigner-30.0.3]: https://android.googlesource.com/platform/tools/apksig/+/refs/tags/platform-tools-30.0.3 -[xa-11.0]: https://docs.microsoft.com/xamarin/android/release-notes/11/11.0#bindings-for-android-11-beta \ No newline at end of file diff --git a/Documentation/release-notes/5038.md b/Documentation/release-notes/5038.md deleted file mode 100644 index aa841e98253..00000000000 --- a/Documentation/release-notes/5038.md +++ /dev/null @@ -1,10 +0,0 @@ -#### Fix CollectNonEmptyDirectories to handle file collisions. - -- [GitHub PR 5038](https://github.com/xamarin/xamarin-android/pull/5038): - Aapt2 would fail with missing resources when using ResizetizerNT and - `google-services.json` together. - - error APT2260: resource drawable/icon (aka com.some.package:drawable/icon) not found. - error APT2061: failed linking file resources. - - This is because they were both using the same file to track the directory contents. The build system has now been updated to ensure each resource directory has its own unique cache file. \ No newline at end of file diff --git a/Documentation/release-notes/5051.md b/Documentation/release-notes/5051.md deleted file mode 100644 index 755c5078e3d..00000000000 --- a/Documentation/release-notes/5051.md +++ /dev/null @@ -1,7 +0,0 @@ -#### Application and library build and deployment - - * [Developer Community 1157593][0]: Fixes an issue where modifying - `@(AndroidAsset)` files would require a `Rebuild` to see the - changes reflected in the Android application build output. - -[0]: https://developercommunity.visualstudio.com/content/problem/1157593/apk-is-not-rebuild-when-androidasset-changes.html diff --git a/Documentation/release-notes/5071.md b/Documentation/release-notes/5071.md deleted file mode 100644 index 9f6b73b122d..00000000000 --- a/Documentation/release-notes/5071.md +++ /dev/null @@ -1,8 +0,0 @@ -#### Application and library build and deployment - - * [Developer Community 1141659][0]: Starting in Xamarin.Android - 11.0, the *Updating Resources...* build step could get stuck - indefinitely if `.DS_Store` or any file starting with `.` was - included in the project with the **AndroidResource** Build Action. - -[0]: https://developercommunity.visualstudio.com/content/problem/1141659/android-build-process-never-stops.html diff --git a/Documentation/release-notes/5107.md b/Documentation/release-notes/5107.md deleted file mode 100644 index 8fc633b187f..00000000000 --- a/Documentation/release-notes/5107.md +++ /dev/null @@ -1,14 +0,0 @@ -#### Application and library build and deployment - -* [Github PR 5107](https://github.com/xamarin/xamarin-android/pull/5107): - Starting in Xamarin.Android 11.0, building - solutions in parallel with `msbuild YourSolution.sln -m` could - fail with errors such as: - - ``` - obj\Release\100\android\manifest\AndroidManifest.xml(7,0): error APT2260: resource mipmap/ic_launcher (aka com.companyname.skiasharpsample:mipmap/ic_launcher) not found. - obj\Release\100\android\manifest\AndroidManifest.xml(7,0): error APT2260: resource string/app_name (aka com.companyname.skiasharpsample:string/app_name) not found. - obj\Release\100\android\manifest\AndroidManifest.xml(7,0): error APT2260: resource mipmap/ic_launcher_round (aka com.companyname.skiasharpsample:mipmap/ic_launcher_round) not found. - obj\Release\100\android\manifest\AndroidManifest.xml(9,0): error APT2260: resource style/MainTheme.Splash (aka com.companyname.skiasharpsample:style/MainTheme.Splash) not found. - Xamarin.Android.Aapt2.targets(226,3): error APT2067: failed processing manifest. - ``` diff --git a/Documentation/release-notes/5111.md b/Documentation/release-notes/5111.md deleted file mode 100644 index 98e1a4ded78..00000000000 --- a/Documentation/release-notes/5111.md +++ /dev/null @@ -1,6 +0,0 @@ -#### Application and library build and deployment - - * [Developer Community 1184573](https://developercommunity.visualstudio.com/content/problem/1167082/xamarin-android-falsely-saying-that-resource-does.html): - Xamarin Android falsely saying that Resource does not exist in the current context (CS0103). - Duplicate `attr` elements in `declare-styleable` styles were causing the design-time build - system to crash. As a result the _Resource.designer.cs_ was not being updated. \ No newline at end of file diff --git a/Documentation/release-notes/5112.md b/Documentation/release-notes/5112.md deleted file mode 100644 index 2f8e7f462b9..00000000000 --- a/Documentation/release-notes/5112.md +++ /dev/null @@ -1,4 +0,0 @@ -#### Application and library build and deployment - -* [GitHub Issue 4996](https://github.com/xamarin/xamarin-android/issues/4996): - application deploy on Android 11 emulator fails with Mono.AndroidTools.AdbException: secure_mkdirs failed: Permission denied diff --git a/Documentation/release-notes/5113.md b/Documentation/release-notes/5113.md deleted file mode 100644 index fd9ae14fc95..00000000000 --- a/Documentation/release-notes/5113.md +++ /dev/null @@ -1,8 +0,0 @@ -#### Application and library build and deployment - - * [Developer Community 1141659][0]: Starting in Xamarin.Android - 11.0, the *Updating Resources...* build step could get stuck - indefinitely if a NuGet package containing an **AndroidResource** - file name starting with `.` was included in a project. - -[0]: https://developercommunity.visualstudio.com/content/problem/1141659/android-build-process-never-stops.html diff --git a/Documentation/release-notes/5188.md b/Documentation/release-notes/5188.md deleted file mode 100644 index 4796ecbde03..00000000000 --- a/Documentation/release-notes/5188.md +++ /dev/null @@ -1,7 +0,0 @@ -### Build and deployment performance - - * [GitHub PR 5188](https://github.com/xamarin/xamarin-android/pull/5188): - Improve performance by lazily loading an Android resource mapping - file that is only used for error messages. This reduced the - overall build time by 348ms in a real-world project in an initial - clean build or incremental builds with Android resource changes. diff --git a/Documentation/release-notes/5221.md b/Documentation/release-notes/5221.md deleted file mode 100644 index 208b2c22972..00000000000 --- a/Documentation/release-notes/5221.md +++ /dev/null @@ -1,5 +0,0 @@ -#### Application and library build and deployment - -* [GitHub Issue 5218](https://github.com/xamarin/xamarin-android/issues/5218): - Fixed a *System.IO.DirectoryNotFoundException* that could occur when - building a project on a Windows network share. diff --git a/Documentation/release-notes/5234.md b/Documentation/release-notes/5234.md deleted file mode 100644 index b3715390028..00000000000 --- a/Documentation/release-notes/5234.md +++ /dev/null @@ -1,6 +0,0 @@ -#### Application and library build and deployment - -* [GitHub Issue 5234](https://github.com/xamarin/xamarin-android/issues/5234): - Fixed *error XA0032: Java SDK 11.0 or above is required when using - Android SDK Build-Tools 30.x.x.* that could occur when building on a - system with the Android SDK `build-tools` 30 or higher installed. diff --git a/Documentation/release-notes/5253.md b/Documentation/release-notes/5253.md deleted file mode 100644 index 31967f17c78..00000000000 --- a/Documentation/release-notes/5253.md +++ /dev/null @@ -1,4 +0,0 @@ -#### Binding library build - - * [GitHub Issue 4789](https://github.com/xamarin/xamarin-android/issues/4789): - Support the `@(JavaSourceJar)` build action on JDK 11 and later. diff --git a/Documentation/release-notes/5266.md b/Documentation/release-notes/5266.md deleted file mode 100644 index b4e3d7ff035..00000000000 --- a/Documentation/release-notes/5266.md +++ /dev/null @@ -1,6 +0,0 @@ -### Build and deployment performance - - * [GitHub PR 5266](https://github.com/xamarin/xamarin-android/pull/5266): - Minor improvements to the way zip archives are created. Do not create - folders in the classes.zip file and allow the auto flushing of - a zip file to be switched off. \ No newline at end of file diff --git a/Documentation/release-notes/5278.md b/Documentation/release-notes/5278.md deleted file mode 100644 index 99ad21c9b84..00000000000 --- a/Documentation/release-notes/5278.md +++ /dev/null @@ -1,5 +0,0 @@ -#### Application and library build and deployment - - * [GitHub PR 5278](https://github.com/xamarin/xamarin-android/pull/5278): - Update the linker in Release builds to insert `GC.KeepAlive()` invocations within - JNI marshal methods to prevent premature instance collection. diff --git a/Documentation/release-notes/5283.md b/Documentation/release-notes/5283.md deleted file mode 100644 index 1682c5c9604..00000000000 --- a/Documentation/release-notes/5283.md +++ /dev/null @@ -1,8 +0,0 @@ -### Build and deployment performance - - * [GitHub PR 5283](https://github.com/xamarin/xamarin-android/pull/5283): - Fixed an issue where changing the selected device or emulator in - the IDE would cause many parts of the build to run on an - incremental build. This reduced the overall build time from 5.526 - seconds to 1.451 seconds for this scenario in a small test - project. diff --git a/Documentation/release-notes/5304.md b/Documentation/release-notes/5304.md deleted file mode 100644 index 60fe3c3be31..00000000000 --- a/Documentation/release-notes/5304.md +++ /dev/null @@ -1,18 +0,0 @@ -### Build and deployment performance - - * [GitHub PR 5304](https://github.com/xamarin/xamarin-android/pull/5304): - Add support for producing a proguard `mapping.txt` file to the - build system. This file can be used by users to remove this warning - - "This App Bundle contains Java/Kotlin code, which might be obfuscated." - - when uploading packages to the Google Play Store. - - In order to opt-in to this behavior, set the `$(AndroidProguardMappingFile)` - property in your project file to the path of the file you want generated: - - ```xml - - $(OutputPath)\mapping.txt - - ``` diff --git a/Documentation/release-notes/5311.md b/Documentation/release-notes/5311.md deleted file mode 100644 index 57411b39e99..00000000000 --- a/Documentation/release-notes/5311.md +++ /dev/null @@ -1,33 +0,0 @@ -### Build and deployment performance - -* [GitHub PR 5311](https://github.com/xamarin/xamarin-android/pull/5311): - Add support for deploying and debugging against different user accounts - on Android Devices. In order to use this you need to specify the - `AndroidDeviceUserId` in either your csproj or on the command line. - - ```xml - - 10 - - ``` - - ``` - msbuild foo.csproj /t:Install /p:AndroidDeviceUserId=10 - ``` - - The value is the `uid` value you get from the following adb command - - ``` - adb shell pm list users - ``` - - This will return the following data - - ``` - Users: - UserInfo{0:Owner:c13} running - UserInfo{10:Guest:404} - ``` - - The `uid` is the first integer value. In the example they - are `0` and `10`. \ No newline at end of file diff --git a/Documentation/release-notes/5314.md b/Documentation/release-notes/5314.md deleted file mode 100644 index 437d60264c3..00000000000 --- a/Documentation/release-notes/5314.md +++ /dev/null @@ -1,8 +0,0 @@ -### Build and deployment performance - - * [GitHub PR 5314](https://github.com/xamarin/xamarin-android/pull/5314): - Fixed an issue that could cause the Android [manifest - merger][manifest-merger] to always run on incremental builds. This - reduced incremental build times by 296ms in a small test project. - -[manifest-merger]: https://developer.android.com/studio/build/manifest-merge diff --git a/Documentation/release-notes/5372.md b/Documentation/release-notes/5372.md deleted file mode 100644 index 639c9115519..00000000000 --- a/Documentation/release-notes/5372.md +++ /dev/null @@ -1,61 +0,0 @@ -#### Application and library build and deployment - - * [GitHub PR 5372](https://github.com/xamarin/xamarin-android/pull/5372): - Introduces the **AndroidLibrary** Build Action for Java or Kotlin libraries. - -**AndroidLibrary** is a new Build Action can be used as an alternative -to **AndroidAarLibrary**, **AndroidJavaLibrary**, **EmbeddedJar**, -**EmbeddedReferenceJar**, and **LibraryProjectZip**. - -For example, in an Android application or class library project: - -```xml - - - - - - - - - - -``` - -In a Java binding project: - -```xml - - - - - - - - - - - - -``` - -Using the **AndroidLibrary** Build Action is optional, as the old item -names are still supported. - -The **AndroidNativeLibrary** Build Action will continue to be used for -native libraries (`.so` files). However one improvement has been -introduced for Xamarin.Android class library or Java binding projects: - -```xml - - - - - - - - -``` - -The **AndroidNativeLibrary** Build Action can now be used in all -project types. It previously was only used in application projects. diff --git a/Documentation/release-notes/5375.md b/Documentation/release-notes/5375.md deleted file mode 100644 index ea18a11f51b..00000000000 --- a/Documentation/release-notes/5375.md +++ /dev/null @@ -1,25 +0,0 @@ -### Application size improvements - - * [GitHub PR 5375](https://github.com/xamarin/xamarin-android/pull/5375): - Removed decoration of `System.ComponentModel.CategoryAttribute` to - improve linker behavior. This reduced the .NET assembly size of a - .NET 6 application by 3,271 bytes. - -`CategoryAttribute` was removed from properties on types such as -`Android.App.ActivityAttribute`: - -```diff --[Category ("@drawable;@mipmap")] -public string? Icon { get; set; } --[Category ("@string")] -public string? Label { get; set; } -``` - -A full list of types changed: - -* `Android.App.ActivityAttribute` -* `Android.App.ApplicationAttribute` -* `Android.App.InstrumentationAttribute` -* `Android.App.ServiceAttribute` -* `Android.Content.BroadcastReceiverAttribute` -* `Android.Content.ContentProviderAttribute` diff --git a/Documentation/release-notes/5428.md b/Documentation/release-notes/5428.md deleted file mode 100644 index 39f0613142c..00000000000 --- a/Documentation/release-notes/5428.md +++ /dev/null @@ -1,8 +0,0 @@ -### sqlite version update to 3.32.2 - -The version of the [`sqlite`][sqlite] library included in Xamarin.Android has -been updated from 3.28.0 to [3.32.2][sqlite-3.32.2], -bringing in several improvements and bug fixes. - -[sqlite]: https://github.com/xamarin/sqlite/ -[sqlite-3.32.2]: https://sqlite.org/releaselog/3_32_2.html diff --git a/Documentation/release-notes/5431.md b/Documentation/release-notes/5431.md deleted file mode 100644 index 7555d384e31..00000000000 --- a/Documentation/release-notes/5431.md +++ /dev/null @@ -1,9 +0,0 @@ -### Binding Projects Nullable Reference Types Support - - * [GitHub PR 5431](https://github.com/xamarin/xamarin-android/pull/5431): - [Xamarin.Android.Build.Tasks] Enable NRT for bindings projects. - -Adding `enable` to an Android Bindings project -that has `` of at least C# 8 will cause the generated -code to include nullable reference types. Many Nullable annotations from the -Java/Android ecosystem are supported. ([Supported List](https://github.com/xamarin/java.interop/pull/526)) \ No newline at end of file diff --git a/Documentation/release-notes/5457.md b/Documentation/release-notes/5457.md deleted file mode 100644 index e1872fe40d3..00000000000 --- a/Documentation/release-notes/5457.md +++ /dev/null @@ -1,4 +0,0 @@ -#### Application and library build and deployment - -* [GitHub Issue 5424](https://github.com/xamarin/xamarin-android/issues/5424): - Fixed a file lock on `classes.jar` when building on Windows. \ No newline at end of file diff --git a/Documentation/release-notes/5477.md b/Documentation/release-notes/5477.md deleted file mode 100644 index eba01b5dedd..00000000000 --- a/Documentation/release-notes/5477.md +++ /dev/null @@ -1,5 +0,0 @@ -### Application and library build and deployment - - * [GitHub PR 5477](https://github.com/xamarin/xamarin-android/pull/5477): - *error MSB3375: The file `__AndroidLibraryProjects__.zip` does not exist.* - could occur when building certain Xamarin.Android class library projects. diff --git a/Documentation/release-notes/5479.md b/Documentation/release-notes/5479.md deleted file mode 100644 index 2d1833cae7b..00000000000 --- a/Documentation/release-notes/5479.md +++ /dev/null @@ -1,10 +0,0 @@ -### Issues fixed - - * [GitHub 2745](https://github.com/xamarin/xamarin-android/issues/2745): - The `@(JavaDocJar)` build action would either cause an MSB3375 error, - or wasn't used at all. - -#### Deprecation of JavaDocJar Build action in favor of JavaSourceJar - -The `@(JavaDocJar)` Build action is deprecated, and will not work in .NET 6. -Please use the `@(JavaSourceJar)` build action. diff --git a/Documentation/release-notes/Issue4804.md b/Documentation/release-notes/Issue4804.md deleted file mode 100644 index 21f0095c442..00000000000 --- a/Documentation/release-notes/Issue4804.md +++ /dev/null @@ -1,13 +0,0 @@ -#### Wrong AndroidManifest.xml packaged to the APK while using binding library - - * [GitHub 4812][0]: We were overwriting the AndroidManifest.xml file - in the apk with ones from Support Libraries. This manifests itself - with the following error - - ``` - Failed to parse APK info: failed to parse AndroidManifest.xml, error: %!s() -deploy failed, error: failed to get apk infos, output: W/ResourceType( 5266): Bad XML block: - ``` - - - [0]: https://github.com/xamarin/xamarin-android/pull/4812 \ No newline at end of file diff --git a/Documentation/release-notes/aapt.md b/Documentation/release-notes/aapt.md deleted file mode 100644 index 4caa184f696..00000000000 --- a/Documentation/release-notes/aapt.md +++ /dev/null @@ -1,32 +0,0 @@ -#### Deprecation of aapt in favor of aapt2 - -``` -warning XA1026: Using AAPT is deprecated in favor of AAPT2. Please enable 'Use incremental Android packaging system (aapt2)' in the Visual Studio project property pages or edit the project file in a text editor and set the 'AndroidUseAapt2' MSBuild property to 'true'. -``` - -[Google has deprecated][aapt] the AAPT command-line tool in favor of -AAPT2 going forward. Xamarin.Android has accordingly now deprecated -`false` as well. - -Update the `AndroidUseAapt2` MSBuild property to `true` to select -AAPT2. This property corresponds to the **Use incremental Android -packaging system (aapt2)** setting in the Visual Studio project -properties pages. Alternatively, remove `` from the -_.csproj_ file to let the build select the default value `true`. - -> [!IMPORTANT] -> AAPT2 will in some cases enforce stricter rules on resource files than the -> previous AAPT, so some adjustments might be needed if you see new error -> messages that come from AAPT2 itself rather than from the Xamarin.Android -> build tasks. - -If needed, the `--legacy` switch can run AAPT2 in an AAPT -compatibility mode. Add the following to your _.csproj_ file: - -```xml - - --legacy - -``` - -[aapt]: https://developer.android.com/studio/command-line/aapt2#aapt2_changes diff --git a/Documentation/release-notes/aapt2-4.0.0.md b/Documentation/release-notes/aapt2-4.0.0.md deleted file mode 100644 index d67ae81ab86..00000000000 --- a/Documentation/release-notes/aapt2-4.0.0.md +++ /dev/null @@ -1,4 +0,0 @@ -### aapt2 update to 4.0.0 - -The version of the [aapt2](https://developer.android.com/studio/command-line/aapt2) -command-line tool has been updated from 3.5.3 to 4.0.0. diff --git a/Documentation/release-notes/androidresgenextraargs.md b/Documentation/release-notes/androidresgenextraargs.md deleted file mode 100644 index 6e06fd4030e..00000000000 --- a/Documentation/release-notes/androidresgenextraargs.md +++ /dev/null @@ -1,20 +0,0 @@ -#### Application and library build and deployment - -A text templating feature for aapt/aapt2 has been removed that -provided a workaround for the Amazon Fire Phone: - -```xml --I ${library.imports:eac-api.jar} -I ${library.imports:euclid-api.jar} -``` - -The `${library.imports:...}` syntax should no longer be needed by -modern Android libraries. [`.aar`][aar] files are the recommended way -for Java/Kotlin libraries to distribute Android resources to be -consumed by Xamarin.Android application projects. - -Note that the `$(AndroidResgenExtraArgs)` and -`$(AndroidAapt2LinkExtraArgs)` MSBuild properties will continue to -pass additional arguments to `aapt` and `aapt2 link` with the -`${library.imports:...}` syntax removed. - -[aar]: https://developer.android.com/studio/projects/android-library#aar-contents diff --git a/Documentation/release-notes/api30-queries.md b/Documentation/release-notes/api30-queries.md deleted file mode 100644 index 4bac484a7fc..00000000000 --- a/Documentation/release-notes/api30-queries.md +++ /dev/null @@ -1,28 +0,0 @@ -#### Application and library build and deployment - -Starting in [Android 11][0], for Fast Deployment to work on an API 30 -device or emulator, the following `` entries must be present in -`AndroidManifest.xml`: - -```xml - - - - - - - - - -``` - -These will be generated if `$(AndroidUseSharedRuntime)` is `true` and -`android:targetSdkVersion` is 30 or higher. - -### manifestmerger.jar version update to 27.0.0 - -The version of the [manifest merger][1] included in Xamarin.Android -has been updated from 26.5.0 to 27.0.0. - -[0]: https://developer.android.com/preview/privacy/package-visibility#package-name -[1]: https://developer.android.com/studio/build/manifest-merge.html diff --git a/Documentation/release-notes/appdomain-warning-2.md b/Documentation/release-notes/appdomain-warning-2.md deleted file mode 100644 index bfd0d559e5e..00000000000 --- a/Documentation/release-notes/appdomain-warning-2.md +++ /dev/null @@ -1,5 +0,0 @@ - * *warning XA2000: Warning: Use of AppDomain::CreateDomain detected in - assembly ... The AppDomain's will not be part of .NET 5 and therefore will - be missing in newer Xamarin.Android releases.* did not indicate that .NET 5 - will still include the `AppDomain` type but only support use of a single - `AppDomain`. diff --git a/Documentation/release-notes/bump-ji-56955d9ad3.md b/Documentation/release-notes/bump-ji-56955d9ad3.md deleted file mode 100644 index 8d78706c677..00000000000 --- a/Documentation/release-notes/bump-ji-56955d9ad3.md +++ /dev/null @@ -1,6 +0,0 @@ - -#### Application and library build and deployment - - - [Java.Interop GitHub PR 632](https://github.com/xamarin/java.interop/pull/632): - Android Bindings projects now support binding Java methods with unlimited - parameters instead of the previous limit of 14 parameters. diff --git a/Documentation/release-notes/bundletool-1.2.0.md b/Documentation/release-notes/bundletool-1.2.0.md deleted file mode 100644 index b2b9b3b499d..00000000000 --- a/Documentation/release-notes/bundletool-1.2.0.md +++ /dev/null @@ -1,8 +0,0 @@ -### bundletool version update to 1.2.0 - -The version of the [`bundletool`][bundletool] executable included in -Xamarin.Android has been updated from 0.14.0 to [1.2.0][bundletool-1.2.0], -bringing in several improvements and bug fixes. - -[bundletool]: https://developer.android.com/studio/command-line/bundletool -[bundletool-1.2.0]: https://github.com/google/bundletool/releases/tag/1.2.0 diff --git a/Documentation/release-notes/bundletool-1.4.0.md b/Documentation/release-notes/bundletool-1.4.0.md deleted file mode 100644 index 778d4e2e157..00000000000 --- a/Documentation/release-notes/bundletool-1.4.0.md +++ /dev/null @@ -1,8 +0,0 @@ -### bundletool version update to 1.4.0 - -The version of the [`bundletool`][bundletool] executable included in -Xamarin.Android has been updated from 1.2.0 to [1.4.0][bundletool-1.4.0], -bringing in several improvements and bug fixes. - -[bundletool]: https://developer.android.com/studio/command-line/bundletool -[bundletool-1.4.0]: https://github.com/google/bundletool/releases/tag/1.4.0 diff --git a/Documentation/release-notes/class-libraries-aab.md b/Documentation/release-notes/class-libraries-aab.md deleted file mode 100644 index 55cadb5d540..00000000000 --- a/Documentation/release-notes/class-libraries-aab.md +++ /dev/null @@ -1,7 +0,0 @@ -#### Application and library build and deployment - -* [GitHub Issue 5024](https://github.com/xamarin/xamarin-android/issues/5024): - *error XA0119: Using the shared runtime and Android App Bundles at - the same time is not currently supported* build error could - mistakenly appear for Xamarin.Android class libraries when - `$(AndroidPackageFormat)` is set to `aab`. diff --git a/Documentation/release-notes/cpp-aab.md b/Documentation/release-notes/cpp-aab.md deleted file mode 100644 index 08cb359373f..00000000000 --- a/Documentation/release-notes/cpp-aab.md +++ /dev/null @@ -1,6 +0,0 @@ -#### C++ projects - -* [GitHub Issue 4998](https://github.com/xamarin/xamarin-android/issues/4998): - *Files under lib/ must have .so extension, found 'lib/x86/gdbserver'.* build error - prevented building app bundles for projects with references to Android C++ library - projects. diff --git a/Documentation/release-notes/csharp-8.md b/Documentation/release-notes/csharp-8.md deleted file mode 100644 index 162f00d57ee..00000000000 --- a/Documentation/release-notes/csharp-8.md +++ /dev/null @@ -1,5 +0,0 @@ -#### Application and library build and deployment - -* [GitHub Issue 5049](https://github.com/xamarin/xamarin-android/issues/5049): - *Feature 'XYZ' is not available in C# 7.3. Please use language version 8.0 or greater.* - build error could prevent projects from using C# 8.0 language features. diff --git a/Documentation/release-notes/debugtype.md b/Documentation/release-notes/debugtype.md deleted file mode 100644 index 8374b4a1657..00000000000 --- a/Documentation/release-notes/debugtype.md +++ /dev/null @@ -1,32 +0,0 @@ -#### Deprecation of DebugType full and pdbonly - -``` -warning XA0125: 'AndroidApp1.pdb' is using a deprecated debug -information level. Set the debugging information to Portable in the -Visual Studio project property pages or edit the project file in a -text editor and set the 'DebugType' MSBuild property to 'portable' to -use the newer, cross-platform debug information level. If this file -comes from a NuGet package, update to a newer version of the NuGet -package or notify the library author. -``` - -Support for _.mdb_ or _.pdb_ symbols files that were built with the -`DebugType` MSBuild property set to `full` or `pdbonly` is now -deprecated. This applies to _.mdb_ and _.pdb_ files in application -projects as well as in referenced libraries, including NuGet packages. - -Set `DebugType` to `portable` in the application project as well all -library references. `portable` is the recommended setting for all -projects from now on. The older `full` and `pdbonly` settings are for -older Windows-specific file formats. .NET 6 and higher will not support -those older formats. - -In Visual Studio, go to **Properties > Build > Advanced** in the project -property pages and change **Debugging information** to **Portable**. - -In Visual Studio for Mac, go to **Build > Compiler > Debug information** -in the project property pages and change **Debug information** to -**Portable**. - -If the problematic symbol file comes from a NuGet package, update to a -newer version of the package or notify the library author. diff --git a/Documentation/release-notes/dx-deprecation.md b/Documentation/release-notes/dx-deprecation.md deleted file mode 100644 index 9bd5d1adae0..00000000000 --- a/Documentation/release-notes/dx-deprecation.md +++ /dev/null @@ -1,6 +0,0 @@ - * warning XA1023: Using the DX Dex Compiler is deprecated ... Google - has deprecated the DX Dex Compiler. DX will be [completely - removed][dx] in a future release of the Android SDK and Android - Studio. - -[dx]: https://android-developers.googleblog.com/2020/02/the-path-to-dx-deprecation.html diff --git a/Documentation/release-notes/extractNativeLibs.md b/Documentation/release-notes/extractNativeLibs.md deleted file mode 100644 index 1fe93a2b537..00000000000 --- a/Documentation/release-notes/extractNativeLibs.md +++ /dev/null @@ -1,35 +0,0 @@ -#### Application and library build and deployment - -* [GitHub Issue 4986](https://github.com/xamarin/xamarin-android/issues/4986): - Updates to Android tooling (`manifest-merger`), caused - `//application/@android:extractNativeLibs` to be set to `false` by - default. This can cause an undesirable `.apk` file size increase - that is more noticeable for Xamarin.Android applications using AOT. - Xamarin.Android now sets `extractNativeLibs` to `true` by default. - -According to the [Android documentation][extractNativeLibs], -`extractNativeLibs` affects `.apk` size and install size: - -> Whether or not the package installer extracts native libraries from -> the APK to the filesystem. If set to false, then your native -> libraries must be page aligned and stored uncompressed in the APK. -> No code changes are required as the linker loads the libraries -> directly from the APK at runtime. The default value is "true". - -This is a tradeoff that each developer should decide upon on a -per-application basis. Is a smaller install size at the cost of a -larger download size preferred? - -Since Xamarin.Android now emits `android:extractNativeLibs="true"` by -default, you can get the opposite behavior with an -`AndroidManifest.xml` such as: - -```xml - - - - - -``` - -[extractNativeLibs]: https://developer.android.com/guide/topics/manifest/application-element diff --git a/Documentation/release-notes/fix-4675.md b/Documentation/release-notes/fix-4675.md deleted file mode 100644 index 13c7363403f..00000000000 --- a/Documentation/release-notes/fix-4675.md +++ /dev/null @@ -1,6 +0,0 @@ -#### IDE compatibility - -- [GitHub 4675](https://github.com/xamarin/xamarin-android/issues/4675): - _The project ... is missing Android SDKs required for building._ prevented - building without the Android NDK installed for projects with **Enable Startup - Tracing** or **AOT Compilation** enabled. diff --git a/Documentation/release-notes/google-play-29.md b/Documentation/release-notes/google-play-29.md deleted file mode 100644 index ad2e922d32c..00000000000 --- a/Documentation/release-notes/google-play-29.md +++ /dev/null @@ -1,15 +0,0 @@ -### Other warning and error changes - -#### Updated XA0113 warning for Google Play submission requirements - -The XA0113 warning has been updated to reflect [a more recent minimum target -version of Android 10 (API level 29)][targetsdk] for submissions to the Google -Play store. The following warning will now appear for projects that have an -earlier version set under **Compile using Android version: (Target Framework)** -in the Visual Studio project property pages: - -``` -warning XA0113: Google Play requires that new applications and updates must use a TargetFrameworkVersion of v10.0 (API level 29) or above. You are currently targeting v9.0 (API level 28). -``` - -[targetsdk]: https://support.google.com/googleplay/android-developer/answer/9859152?#targetsdk diff --git a/Documentation/release-notes/images/4583.png b/Documentation/release-notes/images/4583.png deleted file mode 100644 index 5296a74c6ed..00000000000 Binary files a/Documentation/release-notes/images/4583.png and /dev/null differ diff --git a/Documentation/release-notes/incremental-linkdescription.md b/Documentation/release-notes/incremental-linkdescription.md deleted file mode 100644 index 651d8c7a418..00000000000 --- a/Documentation/release-notes/incremental-linkdescription.md +++ /dev/null @@ -1,7 +0,0 @@ -#### Application and library build and deployment - - * [Developer Community 1061307][0]: Fixes an issue where modifying - `@(LinkDescription)` files would require a `Rebuild` to see the - changes reflected in the Android application build output. - -[0]: https://developercommunity.visualstudio.com/content/problem/1061307/changes-not-applied-on-build-after-linker-configur.html diff --git a/Documentation/release-notes/manifestmerger-27.1.1.md b/Documentation/release-notes/manifestmerger-27.1.1.md deleted file mode 100644 index 5c7f302ef7c..00000000000 --- a/Documentation/release-notes/manifestmerger-27.1.1.md +++ /dev/null @@ -1,6 +0,0 @@ -### manifestmerger.jar version update to 27.1.1 - -The version of the [manifest merger][0] included in Xamarin.Android -has been updated from 27.0.0 to 27.1.1. - -[0]: https://developer.android.com/studio/build/manifest-merge.html diff --git a/Documentation/release-notes/r8-2.1.67.md b/Documentation/release-notes/r8-2.1.67.md deleted file mode 100644 index 9686813833b..00000000000 --- a/Documentation/release-notes/r8-2.1.67.md +++ /dev/null @@ -1,4 +0,0 @@ -### D8/R8 version update to 2.1.67 - -The version of the [D8 dexer and R8 shrinker](https://r8.googlesource.com/r8) -included in Xamarin.Android has been updated from 1.6.82 to 2.1.67. diff --git a/Documentation/release-notes/r8-2.1.75.md b/Documentation/release-notes/r8-2.1.75.md deleted file mode 100644 index 7cd8c7ccf35..00000000000 --- a/Documentation/release-notes/r8-2.1.75.md +++ /dev/null @@ -1,4 +0,0 @@ -### D8/R8 version update to 2.1.75 - -The version of the [D8 dexer and R8 shrinker](https://r8.googlesource.com/r8) -included in Xamarin.Android has been updated from 2.1.67 to 2.1.75. diff --git a/Documentation/release-notes/r8-multidex-config.md b/Documentation/release-notes/r8-multidex-config.md deleted file mode 100644 index 71794d9aba2..00000000000 --- a/Documentation/release-notes/r8-multidex-config.md +++ /dev/null @@ -1,9 +0,0 @@ -### R8 now uses ProguardConfiguration items when code shrinking is disabled - -In previous versions, Xamarin.Android did not yet pass `ProguardConfiguration` -items to the R8 tool when the **Code shrinker** setting, corresponding to the -`AndroidLinkTool` MSBuild property, was disabled. - -Project authors who added a `--pg-conf` option to the `AndroidR8ExtraArguments` -MSBuild property to work around this limitation in the past can now transition -to the standard `ProguardConfiguration` mechanism. diff --git a/Documentation/release-notes/reword-xa1011.md b/Documentation/release-notes/reword-xa1011.md deleted file mode 100644 index e96d7e0e9e8..00000000000 --- a/Documentation/release-notes/reword-xa1011.md +++ /dev/null @@ -1,7 +0,0 @@ -#### Application and library build and deployment - -- _error XA1011: Using ProGuard with the D8 DEX compiler is no longer supported. - Please update \`$(AndroidLinkTool)\` to \`r8\`._ did not mention the - corresponding term _code shrinker_ that is used in the Visual Studio project - property pages and did not mention that `AndroidLinkTool` is an MSBuild - property. diff --git a/Documentation/release-notes/reword-xa5300-1.md b/Documentation/release-notes/reword-xa5300-1.md deleted file mode 100644 index caf7a85f025..00000000000 --- a/Documentation/release-notes/reword-xa5300-1.md +++ /dev/null @@ -1,5 +0,0 @@ -#### Application and library build and deployment - -- _error XA5300: The Android SDK directory could not be found._ and _error - XA5300: The Java SDK directory could not be found._ did not yet mention which - Visual Studio settings to check. diff --git a/Documentation/release-notes/transitive-refasm.md b/Documentation/release-notes/transitive-refasm.md deleted file mode 100644 index 225c8ea0e4b..00000000000 --- a/Documentation/release-notes/transitive-refasm.md +++ /dev/null @@ -1,8 +0,0 @@ -#### Application and library build and deployment - -- [Developer Community 1086457](https://developercommunity.visualstudio.com/content/problem/1086457/index.html): - Changes to libraries referenced by the .NET Standard library in a default - Xamarin.Forms project were not reflected in the running app without a clean - rebuild. More generally, this issue affected any library referenced - indirectly via a .NET Standard library that had the - `ProduceReferenceAssembly` MSBuild property set to `true`. diff --git a/Documentation/release-notes/useshortfilenames.md b/Documentation/release-notes/useshortfilenames.md deleted file mode 100644 index ac0c1aa4be3..00000000000 --- a/Documentation/release-notes/useshortfilenames.md +++ /dev/null @@ -1,27 +0,0 @@ -### `UseShortFileNames=false` is no longer supported - -In previous versions of Xamarin.Android, you could set -`$(UseShortFileNames)` in your `.csproj` file: - -```xml - - false - -``` - -This would tell Xamarin.Android's MSBuild targets to use the "long" -folder names such as: - -* `obj\Debug\lp` -> `__library_projects__` -* `obj\Debug\lp\*\jl` -> `library_project_imports` -* `obj\Debug\lp\*\nl` -> `native_library_imports` - -This was useful when `$(UseShortFileNames)` was a new feature, giving -developers a way to "opt out" if they hit a bug. However, -`$(UseShortFileNames)` has defaulted to `true` since ~July 2017 to -help the [MAX_PATH][0] limit on Windows. - -This functionality has been removed from Xamarin.Android. Short file -names will be used going forward. - -[0]: https://docs.microsoft.com/windows/win32/fileio/naming-a-file#maximum-path-length-limitation diff --git a/Documentation/release-notes/wear.md b/Documentation/release-notes/wear.md deleted file mode 100644 index bde738f1788..00000000000 --- a/Documentation/release-notes/wear.md +++ /dev/null @@ -1,35 +0,0 @@ -#### Deprecation of Android Wear Embedding - -* warning XA4312: Embedding an [Android Wear][0] application inside an - Android application is deprecated. Distribute the Wear application - as a [standalone application][1] instead. - -From a `Foo.Android.csproj` Xamarin.Android project, you could -reference a `Foo.Wear.csproj` such as: - -```xml - - Wearable - True - False - -``` - -This would embed `com.foo.wear.apk` *inside* `com.foo.android.apk` in -`Resources/raw`. - -Distribute `Foo.Wear.csproj` in the above example as a [standalone][1] -Android Wear application instead. - -##### Android Wear 1.x - -Note that only Android Wear 2.0 and higher is supported by -Xamarin.Android. Android Wear 1.x applications fail to compile with: - -``` -error XA0121: Assembly 'Xamarin.Android.Wearable' is using '[assembly: Java.Interop.JavaLibraryReferenceAttribute]', which is no longer supported. Use a newer version of this NuGet package or notify the library author. -error XA0121: Assembly 'Xamarin.Android.Wearable' is using '[assembly: Android.IncludeAndroidResourcesFromAttribute]', which is no longer supported. Use a newer version of this NuGet package or notify the library author. -``` - -[0]: https://docs.microsoft.com/xamarin/android/wear/get-started/intro-to-wear -[1]: https://developer.android.com/training/wearables/apps/standalone-apps diff --git a/Documentation/release-notes/xa0119-aab-err.md b/Documentation/release-notes/xa0119-aab-err.md deleted file mode 100644 index 0e1418bd733..00000000000 --- a/Documentation/release-notes/xa0119-aab-err.md +++ /dev/null @@ -1,31 +0,0 @@ -### XA0119 error for unsupported use of Android App Bundle format in Debug configuration - -The Android App Bundle publishing format is not currently compatible with the -recommended fast deployment settings for Debug configuration deployments. -Previously, projects that had **Android Package Format** -(`AndroidPackageFormat`) set to **aab** in the Debug configuration along with -the recommended **Use Shared \[Mono\] Runtime** setting would produce a build -warning, but they would also fail to launch on device. - -Since this configuration is not currently supported, Xamarin.Android now emits a -build error for it instead of warning: - -``` -error XA0119: Using the shared runtime and Android App Bundles at the same time is not currently supported. Use the shared runtime for Debug configurations and Android App Bundles for Release configurations. -``` - -To resolve this error, change the **Android Package Format** setting in the -Visual Studio project property pages to **apk** for the Debug configuration. -This corresponds to the `apk` value for the `AndroidPackageFormat` MSBuild -property in the _.csproj_ file: - -```xml - - apk - -``` - -This error is only relevant for Debug configuration builds. Release -configuration builds can continue to use the Android App Bundle packaging -format. - diff --git a/Documentation/release-notes/xa1011.md b/Documentation/release-notes/xa1011.md deleted file mode 100644 index 1c59cbd3800..00000000000 --- a/Documentation/release-notes/xa1011.md +++ /dev/null @@ -1,28 +0,0 @@ -### XA1011 error when using D8 with ProGuard - -Any project using the D8 DEX compiler that has either **Code shrinker** -(`$(AndroidLinkTool)`) set to **ProGuard** or the older -`$(AndroidEnableProguard)` MSBuild property set to `true` will now get a XA1011 -build error: - -``` -error XA1011: Using ProGuard with the D8 DEX compiler is no longer supported. Please update `$(AndroidLinkTool)` to `r8`. -``` - -In the past this configuration was allowed, but now only the R8 code shrinker is -supported for use with the D8 DEX compiler. - -To resolve this error, update the **Code shrinker** setting in the Visual Studio -project property pages to **r8**. This corresponds to the `r8` value for the -`$(AndroidLinkTool)` MSBuild property in the *.csproj* file: - -```xml - - r8 - -``` - -> [!NOTE] -> R8 might in some cases produce new build warnings or errors compared to -> ProGuard, so the ProGuard rules for the project might require a few updates to -> resolve any new warnings or errors that appear after this change. diff --git a/Documentation/release-notes/xa1025.md b/Documentation/release-notes/xa1025.md deleted file mode 100644 index 989e9ca6df6..00000000000 --- a/Documentation/release-notes/xa1025.md +++ /dev/null @@ -1,42 +0,0 @@ -#### Deprecations, removals, and default configuration changes - -- [XA1025 error for Hybrid AndroidAotMode with incompatible armeabi-v7a target ABI](#xa1025-error-for-hybrid-androidaotmode-with-incompatible-armeabiv7a-target-abi) - -### XA1025 error for Hybrid AndroidAotMode with incompatible armeabi-v7a target ABI - -``` -error XA1025: The experimental 'Hybrid' value for the 'AndroidAotMode' MSBuild -property is not currently compatible with the armeabi-v7a target ABI. To -continue using the experimental 'Hybrid' value for 'AndroidAotMode', deselect -the armeabi-v7a target ABI in the Visual Studio project property pages or edit -the project file in a text editor and remove 'armeabi-v7a' from the -'AndroidSupportedAbis' MSBuild property. -``` - -Projects using the experimental `Hybrid` value for the `AndroidAotMode` MSBuild -property that also include the value `armeabi-v7a` in the `AndroidSupportedAbis` -MSBuild property will now see this build error to help indicate that -applications built with these settings would abort during startup on armeabi-v7a -ABI device environments ([GitHub Issue 1218][github-1218]). - -If armeabi-v7a device compatibility is required for the app, the -`AndroidAotMode` MSBuild property should be set to `Normal` or removed from the -project file completely. To adjust the value of the `AndroidAotMode` MSBuild -property, edit the project file in a text editor. - -If armeabi-v7a device compatibility is not required for the app, then deselect -the **armeabi-v7a** target ABI in the Visual Studio project property pages to -resolve the build error. - -In Visual Studio, the target ABIs can be adjusted under **Supported -architectures** in the **Advanced** section of the **Android Options** tab of -the project property pages - -In Visual Studio for Mac, the target ABIs can be adjusted under **Supported -ABIs** in the **Advanced** tab of the **Android Build** section of the project -property pages. - -Alternatively, edit the project file in a text editor and remove `armeabi-v7a` -from the `AndroidSupportedAbis` MSBuild property by hand. - -[github-1218]: https://github.com/xamarin/xamarin-android/issues/1218 diff --git a/Documentation/release-notes/xa1027-xa1028.md b/Documentation/release-notes/xa1027-xa1028.md deleted file mode 100644 index e1f540c2f00..00000000000 --- a/Documentation/release-notes/xa1027-xa1028.md +++ /dev/null @@ -1,8 +0,0 @@ -### Application and library build process - -- _error XA1011: Using ProGuard with the D8 DEX compiler is no longer - supported... AndroidLinkTool ..._ could appear without clues about the - responsible MSBuild property in certain cases where `AndroidLinkTool` was - empty. Xamarin.Android now provides additional XA1027 and XA1028 build - warnings to indicate cases where one of the older `EnableProguard` or - `AndroidEnableProguard` MSBuild properties is involved. diff --git a/Documentation/release-notes/xa4310.md b/Documentation/release-notes/xa4310.md deleted file mode 100644 index e9aa860b95f..00000000000 --- a/Documentation/release-notes/xa4310.md +++ /dev/null @@ -1,5 +0,0 @@ -#### Application and library build and deployment - -- Imprecise error *error MSB6006: "jarsigner.exe" exited with code 1* or *error - MSB6006: "java.exe" exited with code 2* was shown if `$(AndroidKeyStore)` was - `true` and `$(AndroidSigningKeyStore)` was set to a file that did not exist.