Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[XABT] Fix ApplicationAttribute.ManageSpaceActivity manual mapping (#…
…9708) Fixes: #9705 Context: 3ab74db When converting `AndroidManifest.xml` attribute mappings in 3ab74db, `ApplicationAttribute.ManageSpaceActivity` was not correctly mapped in the manual mapping. The result is that if the property is used: [assembly: Application(ManageSpaceActivity=typeof(MyManageSpaceActivity))] the build will fail: error XAGJS7007: System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Type'. error XAGJS7007: at Android.App.ApplicationAttribute.<>c.<AddManualMapping>b__189_3(ApplicationAttribute self, Object value) in /Users/runner/work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Mono.Android/ApplicationAttribute.Partial.cs:line 47 error XAGJS7007: at Xamarin.Android.Manifest.ManifestDocumentElement`1.Load(T value, CustomAttribute attribute, TypeDefinitionCache cache) in /Users/runner/work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Utilities/ManifestDocumentElement.cs:line 127 error XAGJS7007: at Android.App.ApplicationAttribute.FromCustomAttributeProvider(ICustomAttributeProvider provider, TypeDefinitionCache cache) in /Users/runner/work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Mono.Android/ApplicationAttribute.Partial.cs:line 67 error XAGJS7007: at Xamarin.Android.Tasks.ManifestDocument.CreateApplicationElement(XElement manifest, String applicationClass, List`1 subclasses, TypeDefinitionCache cache) in /Users/runner/work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Utilities/ManifestDocument.cs:line 581 error XAGJS7007: at Xamarin.Android.Tasks.ManifestDocument.Merge(TaskLoggingHelper log, TypeDefinitionCache cache, List`1 subclasses, String applicationClass, Boolean embed, String bundledWearApplicationName, IEnumerable`1 mergedManifestDocuments) in /Users/runner/work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Utilities/ManifestDocument.cs:line 290 error XAGJS7007: at Xamarin.Android.Tasks.GenerateJavaStubs.MergeManifest(NativeCodeGenState codeGenState, Dictionary`2 userAssemblies) in /Users/runner/work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs:line 363 error XAGJS7007: at Xamarin.Android.Tasks.GenerateJavaStubs.Run(Boolean useMarshalMethods) in /Users/runner/work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs:line 270 error XAGJS7007: at Xamarin.Android.Tasks.GenerateJavaStubs.RunTask() in /Users/runner/work/1/s/xamarin-android/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs:line 102 error XAGJS7007: at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/runner/work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 25 `ApplicationAttribute.ManageSpaceActivity` needs to follow the pattern other attributes of type `Type` follow, like `ActivityAttribute.ParentActivity`: mapping.Add ( member: "ParentActivity", attributeName: "parentActivityName", getter: self => self._ParentActivity, setter: (self, value) => self._ParentActivity = (string) value, typeof (Type) ); With this change, the reported case in #9705 generates the proper `AndroidManifest` value: <application android:manageSpaceActivity="crc64fe9411caa440e724.MyManageSpaceActivity" … >
- Loading branch information