[Xamarin.Android.Build.Tasks] _AddMultiDexDependencyJars only runs for apps #5548
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context: dotnet/android-libraries#247
When porting AndroidX to .NET 6, I noticed something odd... I was
getting
.aarfiles in the build output that appeared to contain thecontents of
android-support-multidex.jar.Then I noticed:
https://github.com/xamarin/AndroidX/blob/16b02ae51980f7bab7be395d44f9998eea9bf32f/source/AndroidXProject.cshtml#L18
The AndroidX binding projects are setting
$(AndroidEnableMultiDex)?This is surely not intentional to be set in a class library, but this
causes
_AddMultiDexDependencyJarsto run:If this was added to
@(AndroidJavaLibrary), then the<CreateAar/>MSBuild task would happily package it in a .NET 6 class library!
I think the solution here is that the
_AddMultiDexDependencyJarsMSBuild target shouldn't actually run unless
$(AndroidApplication)is
true.I updated an existing test for this scenario.