Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Xamarin.Android.Build.Tasks] Make XA0115 error more actionable #2967

Merged
merged 1 commit into from
Apr 30, 2019

Conversation

brendanzagaeski
Copy link
Contributor

Context: https://forums.xamarin.com/discussion/146174/vs2019-error-this-abi-is-no-longer-supported
Context: https://developercommunity.visualstudio.com/comments/485766/view.html

Change the wording of the armeabi build error to make it more actionable
at the cost of also making it a bit longer.

In addition to the questions about this error from users on the forums
and Developer Community, another motivation for this change is that
compared to back when I added the original wording for this message, I
have now had more practice updating other error messages and thinking
about how to make them as actionable as possible on their own.

Unfortunately the correct action to take in the IDE in this case is a
little confusing because the property page in Visual Studio on Windows
is currently different from the property page in Visual Studio for Mac.
For example, in Visual Studio for Mac, the Advanced tab of the
Android Build page will show a checkbox for armeabi if that
setting is present in the $(AndroidSupportedAbis) property in the
.csproj file, so users can just un-check that option to remove the
armeabi value. But on Windows, the Advanced modal window under
the Android Options page now never shows a checkbox for armeabi,
so the easiest way to remove the value is to change and change back one
of the other options and save the properties. That rewrites
$(AndroidSupportedAbis) to contain only the values that are shown as
selected in the modal window.

@@ -7,9 +7,13 @@ property will need to be updated to remove it before they will build
successfully with newer versions of Xamarin.Android. The newer armeabi-v7a ABI
should now be used instead. The `$(AndroidSupportedAbis)` setting can be found
in the **Advanced** section of the **Android Options** project properties in
Visual Studio and **Android Build** project properties in Visual Studio for Mac.
Visual Studio and the **Advanced** tab of the **Android Build** project
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have an entire file (and eventually URL) here. Let's take advantage of it. :-)

Please add separate # Sections so separately address Visual Studio for Windows vs. macOS. Screenshots may be helpful.


Example message:
- `Invalid value 'armeabi' in $(AndroidSupportedAbis). This ABI is no longer supported. Please update your project properties.`

* `Invalid value 'armeabi' in $(AndroidSupportedAbis). This ABI is no longer supported. Please update your project properties to remove the old value. If the properties page does not show an 'armeabi' checkbox, un-check and re-check one of the other ABIs and save the changes.`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you should also show an example of the XML in the csproj file. Sometimes that will be clear to devs, because they will view the diff of their csproj in whichever source control they use.

Context: https://forums.xamarin.com/discussion/146174/vs2019-error-this-abi-is-no-longer-supported
Context: https://developercommunity.visualstudio.com/comments/485766/view.html

Change the wording of the armeabi build error to make it more actionable
at the cost of also making it a bit longer.

In addition to the questions about this error from users on the forums
and Developer Community, another motivation for this change is that
compared to back when I added the original wording for this message, I
have now had more practice updating other error messages and thinking
about how to make them as actionable as possible on their own.

Unfortunately the correct action to take in the IDE in this case is a
little confusing because the property page in Visual Studio on Windows
is currently different from the property page in Visual Studio for Mac.
For example, in Visual Studio for Mac, the **Advanced** tab of the
**Android Build** page will show a checkbox for `armeabi` if that
setting is present in the `$(AndroidSupportedAbis)` property in the
`.csproj` file, so users can just un-check that option to remove the
`armeabi` value.  But on Windows, the **Advanced** modal window under
the **Android Options** page now *never* shows a checkbox for `armeabi`,
so the easiest way to remove the value is to change and change back one
of the other ABIs and save the properties.  That rewrites
`$(AndroidSupportedAbis)` to contain only the values that are *shown* as
selected in the modal window.
@jonpryor jonpryor merged commit fc62c5a into dotnet:master Apr 30, 2019
@github-actions github-actions bot locked and limited conversation to collaborators Jan 31, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants