Commit 2609c38
authored
[Xamarin.Android.Tools.AndroidSdk] Prefer major versions (#262)
Context: dotnet/android#10438
On dotnet/android#10438, many unit tests are failing due to the
following warning:
Xamarin.Android.Tooling.targets(88,5): warning XA4211: AndroidManifest.xml //uses-sdk/@android:targetSdkVersion 'CANARY' is less than $(TargetPlatformVersion) '36.0'. Using API-CANARY for ACW compilation.
Looking at the diagnostic `.binlog`, we *also* see:
Target "_ResolveSdks: …" in file "…\Xamarin.Android.Tooling.targets" from project "…\CodeBehindBuildTests.NET.csproj" (target "_ResolveMonoAndroidSdks" depends on it):
…
Added Item(s):
_AndroidApiInfo=
C:\a\_work\1\s\bin\Release\dotnet\packs\Microsoft.Android.Sdk.Windows\36.0.0-ci.pr.gh10438.318\tools\..\data\net10.0-android36.1\AndroidApiInfo.xml
C:\a\_work\1\s\bin\Release\dotnet\packs\Microsoft.Android.Sdk.Windows\36.0.0-ci.pr.gh10438.318\tools\..\data\net10.0-android36\AndroidApiInfo.xml
…
Task "ResolveSdks" (TaskId:104)
Task Parameter:AndroidSdkPath=C:\Android\android-sdk (TaskId:104)
Task Parameter:MinimumSupportedJavaVersion=17.0 (TaskId:104)
Task Parameter:JavaSdkPath=C:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\17.0.16-8\x64 (TaskId:104)
Task Parameter:LatestSupportedJavaVersion=21.0.99 (TaskId:104)
Task Parameter:
ReferenceAssemblyPaths=
C:\a\_work\1\s\bin\Release\dotnet\packs\Microsoft.Android.Sdk.Windows\36.0.0-ci.pr.gh10438.318\data\net10.0-android36.1\
C:\a\_work\1\s\bin\Release\dotnet\packs\Microsoft.Android.Sdk.Windows\36.0.0-ci.pr.gh10438.318\data\net10.0-android36\ (TaskId:104)
Task Parameter:CommandLineToolsVersion=19.0 (TaskId:104)
The important thing being that the *preview*
`net10.0-android36.1\AndroidApiInfo.xml` is being processed *before*
the *stable* `net10.0-android36\AndroidApiInfo.xml`.
This in turn means that when [`<GetJavaPlatformJar/>`][0] calls
`AndroidVersions.GetIdFromApiLevel("36")`, it obtained the
`AndroidVersion` instance for API-CANARY, *not* API-36!
Task "GetJavaPlatformJar" (TaskId:135)
Task Parameter:TargetFramework=net10.0-android (TaskId:135)
Task Parameter:BuildingInsideVisualStudio=False (TaskId:135)
Task Parameter:SupportedOSPlatformVersion=21.0 (TaskId:135)
Task Parameter:AndroidManifest=C:\a\_work\1\a\TestRelease\09-06_00.12.08\temp\CodeBehind\SuccessfulAndroidXApp\Release\project\Properties\AndroidManifest.xml (TaskId:135)
Task Parameter:DesignTimeBuild=False (TaskId:135)
Task Parameter:TargetPlatformVersion=36.0 (TaskId:135)
Task Parameter:AndroidSdkDirectory=C:\Android\android-sdk (TaskId:135)
Task Parameter:AndroidSdkPlatform=36 (TaskId:135)
1:7>C:\…\Properties\AndroidManifest.xml : warning XA4211: AndroidManifest.xml //uses-sdk/@android:targetSdkVersion 'CANARY' is less than $(TargetPlatformVersion) '36.0'. Using API-CANARY for ACW compilation.
Output Property: JavaPlatformJarPath=C:\Android\android-sdk\platforms\android-CANARY\android.jar (TaskId:135)
Output Property: _AndroidTargetSdkVersion=36 (TaskId:135)
Done executing task "GetJavaPlatformJar". (TaskId:135)
Note input has `TargetPlatformVersion=36.0`, while output has
`JavaPlatformJarPath=…\android-CANARY\android.jar`.
Update `AndroidVersionsTests` so that the preview API-36.1 is
listed *before* API-36, as a *stable* API level (6 months in the
future!), and *also* add stable API-37 and unstable API-37.1,
to better represent this scenario.
Fix this by updating `AndroidVersions` to *sort*
`AndroidVersions.installedVersions` by
`AndroidVersion.VersionCodeFull`. This ensures that
`new Version(36, 0)` precedes `new Version(36, 1)`, and in turn
ensures that `AndroidVersions.GetIdFromApiLevel("36")` returns info
for API-36 and *not* API-CANARY.
[0]: https://github.com/dotnet/android/blob/976544ed415a16b1d44ab06f36f53513361307a5/src/Xamarin.Android.Build.Tasks/Tasks/GetJavaPlatformJar.cs#L1201 parent 31609ca commit 2609c38
File tree
2 files changed
+32
-3
lines changed- src/Xamarin.Android.Tools.AndroidSdk
- tests/Xamarin.Android.Tools.AndroidSdk-Tests
2 files changed
+32
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
78 | 81 | | |
79 | 82 | | |
80 | 83 | | |
| |||
Lines changed: 29 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| 143 | + | |
143 | 144 | | |
144 | | - | |
| 145 | + | |
| 146 | + | |
145 | 147 | | |
146 | 148 | | |
147 | 149 | | |
| |||
161 | 163 | | |
162 | 164 | | |
163 | 165 | | |
| 166 | + | |
164 | 167 | | |
| 168 | + | |
| 169 | + | |
165 | 170 | | |
166 | 171 | | |
167 | 172 | | |
| |||
183 | 188 | | |
184 | 189 | | |
185 | 190 | | |
| 191 | + | |
186 | 192 | | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
187 | 196 | | |
188 | | - | |
| 197 | + | |
189 | 198 | | |
190 | 199 | | |
191 | 200 | | |
| |||
216 | 225 | | |
217 | 226 | | |
218 | 227 | | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
219 | 236 | | |
220 | 237 | | |
221 | | - | |
| 238 | + | |
222 | 239 | | |
223 | 240 | | |
224 | 241 | | |
| |||
240 | 257 | | |
241 | 258 | | |
242 | 259 | | |
| 260 | + | |
243 | 261 | | |
| 262 | + | |
| 263 | + | |
244 | 264 | | |
| 265 | + | |
245 | 266 | | |
246 | 267 | | |
247 | 268 | | |
| |||
261 | 282 | | |
262 | 283 | | |
263 | 284 | | |
| 285 | + | |
264 | 286 | | |
265 | 287 | | |
266 | 288 | | |
| |||
284 | 306 | | |
285 | 307 | | |
286 | 308 | | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
287 | 313 | | |
288 | 314 | | |
289 | 315 | | |
| |||
0 commit comments