Commit 3f12cd2
committed
Revert "[generator] Remove androidx.annotation from Annotation names (#882)"
Partially revert commit 1e8f513.
Context: #885
The problem with commit 1e8f513 is that the change to the
`AnnotationData` constructor broke the xamarin-android
build, introducing API Compatibility errors in `Mono.Android.dll`:
…/src/Mono.Android/Mono.Android.targets(247,5): error : CompatApi command: $HOME/.nuget/packages/microsoft.dotnet.apicompat/5.0.0-beta.20181.7/tools/net472/Microsoft.DotNet.ApiCompat.exe "…/bin/Debug/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v4.4.87/Mono.Android.dll" -i "…/bin/Debug/lib/xamarin.android/xbuild-frameworks/MonoAndroid/v5.0" --allow-default-interface-methods --baseline "…/tests/api-compatibility/acceptable-breakages-v5.0.txt" --validate-baseline --exclude-attributes "…/tests/api-compatibility/api-compat-exclude-attributes.txt"
…/src/Mono.Android/Mono.Android.targets(247,5): error : CheckApiCompatibility found nonacceptable Api breakages for ApiLevel: v5.0.
…/src/Mono.Android/Mono.Android.targets(247,5): error : Compat issues with assembly Mono.Android:
…/src/Mono.Android/Mono.Android.targets(247,5): error : CannotChangeAttribute : Attribute 'Android.Runtime.RequiresPermissionAttribute' on 'Android.Net.ConnectivityManager.GetNetworkInfo(Android.Net.ConnectivityType)' changed from '[RequiresPermissionAttribute("quot;android.permission.ACCESS_NETWORK_STATE"")]' in the contract to '[RequiresPermissionAttribute("quot;android.permission.ACCESS_NETWORK_STATE"")]' in the implementation.
…/src/Mono.Android/Mono.Android.targets(247,5): error : CannotChangeAttribute : Attribute 'Android.Runtime.RequiresPermissionAttribute' on 'Android.OS.Vibrator.Vibrate(System.Int64[], System.Int32)' changed from '[RequiresPermissionAttribute("quot;android.permission.VIBRATE"")]' in the contract to '[RequiresPermissionAttribute("quot;android.permission.VIBRATE"")]' in the implementation.
…/src/Mono.Android/Mono.Android.targets(247,5): error : Total Issues: 2
See Issue #885 for more details and discussion. TL;DR: 1e8f513
allowed `androidx.annotation.RequiresPermission` to be surfaced as
`[Android.Runtime.RequiresPermission]` custom attributes, and in
doing so surfaced a pre-existing issue wherein the same
`[RequiresPermission]` could be present multiple times with the same
constructor values, which typically isn't desirable:
namespace Android.OS {
public abstract partial class Vibrator : Java.Lang.Object {
[global::Android.Runtime.RequiresPermission ("quot;android.permission.VIBRATE"")]
[global::Android.Runtime.RequiresPermission ("quot;android.permission.VIBRATE"")]
public abstract void Vibrate (long milliseconds);
}
}
How and why this is happening isn't currently understood.
In the meantime, revert the `AnnotationData` changes in commit
1e8f513 so that we can bump Java.Interop within xamarin-android.1 parent b37a647 commit 3f12cd2
File tree
1 file changed
+2
-9
lines changed- src/Xamarin.Android.Tools.AnnotationSupport/Objects
1 file changed
+2
-9
lines changedLines changed: 2 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | 10 | | |
15 | 11 | | |
16 | 12 | | |
17 | 13 | | |
18 | | - | |
19 | | - | |
20 | | - | |
| 14 | + | |
| 15 | + | |
21 | 16 | | |
22 | | - | |
23 | | - | |
24 | 17 | | |
25 | 18 | | |
26 | 19 | | |
| |||
0 commit comments