Commit 236893c
authored
[Xamarin.Android.Build.Tasks] use
`mono.android.jar` and `mono.android.dex` are compiled with
`$(AndroidCodegenTarget)=XAJavaInterop1`. This causes problems if
you build a project with `$(AndroidCodegenTarget)=JavaInterop1`
as the wrong set of Java stubs will be used.
For example, `dotnet new maui` using NativAOT we can get a crash such as:
E .hellonativeaot: No implementation found for void mono.android.Runtime.register(java.lang.String, java.lang.Class, java.lang.String) (tried Java_mono_android_Runtime_register and Java_mono_android_Runtime_register__Ljava_lang_String_2Ljava_lang_Class_2Ljava_lang_String_2) - is the library loaded, e.g. System.loadLibrary?
Which is caused by `mono.android.Runtime.register()` being called by
`mono/android/view/View_OnClickListenerImplementor.java` which is
compiled with `$(AndroidCodegenTarget)=XAJavaInterop1`.
To fix this:
* Several places already check if `$(_AndroidUseMarshalMethods)=true`
and skip usage of `mono.android.jar`.
* Add an additional check to verify
`$(AndroidCodegenTarget)=XAJavaInterop1`
Previously, `$(AndroidCodegenTarget)` was also allowed to be blank and
default to `XAJavaInterop1`, but it seems better to explicitly set it.
I also updated `BuildTest2.NativAOT()` to verify that
`mono/android/views/View_OnClickListenerImplementor.java` is
generated on disk.mono.android.jar only for $(AndroidCodegenTarget)=XAJavaInterop1 (#9813)1 parent d012fb8 commit 236893c
File tree
3 files changed
+19
-8
lines changed- src/Xamarin.Android.Build.Tasks
- Tasks
- Tests/Xamarin.Android.Build.Tests
3 files changed
+19
-8
lines changedLines changed: 5 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
440 | 440 | | |
441 | 441 | | |
442 | 442 | | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
443 | 447 | | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
| 448 | + | |
448 | 449 | | |
449 | 450 | | |
450 | 451 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
210 | 214 | | |
211 | 215 | | |
212 | 216 | | |
| |||
Lines changed: 10 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
271 | 271 | | |
272 | 272 | | |
273 | 273 | | |
| 274 | + | |
274 | 275 | | |
275 | 276 | | |
276 | 277 | | |
| |||
1371 | 1372 | | |
1372 | 1373 | | |
1373 | 1374 | | |
1374 | | - | |
| 1375 | + | |
| 1376 | + | |
| 1377 | + | |
1375 | 1378 | | |
1376 | 1379 | | |
1377 | 1380 | | |
| |||
1399 | 1402 | | |
1400 | 1403 | | |
1401 | 1404 | | |
1402 | | - | |
| 1405 | + | |
1403 | 1406 | | |
1404 | 1407 | | |
1405 | 1408 | | |
1406 | 1409 | | |
1407 | | - | |
| 1410 | + | |
1408 | 1411 | | |
1409 | 1412 | | |
1410 | 1413 | | |
| |||
1413 | 1416 | | |
1414 | 1417 | | |
1415 | 1418 | | |
1416 | | - | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
1417 | 1423 | | |
1418 | 1424 | | |
1419 | 1425 | | |
| |||
0 commit comments