|
23 | 23 | AndroidPageSize16KBCompatibilityCheck=false should suppress the check, but Android SDK |
24 | 24 | 36.1.53 still emits XA0141 in some build orderings, so we also add it to NoWarn. --> |
25 | 25 | <AndroidPageSize16KBCompatibilityCheck>false</AndroidPageSize16KBCompatibilityCheck> |
26 | | - <NoWarn>$(NoWarn);XA0141</NoWarn> |
| 26 | + <NoWarn>$(NoWarn);XA0141;NU1608;XA4301</NoWarn> |
27 | 27 | <!-- Disable ELF alignment patching for ALL configurations. |
28 | 28 | The custom PatchElfPageSize task can run concurrently with the Android packaging step |
29 | 29 | because MSBuild's BeforeTargets="Build" fires for every ABI sub-build, which often |
|
53 | 53 | <SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings> |
54 | 54 | <PublishTrimmed>true</PublishTrimmed> |
55 | 55 | <TrimMode>partial</TrimMode> |
56 | | - <!-- Strip IL bodies from AOT-compiled assemblies. The runtime uses the native .so code |
57 | | - instead, and IL is only kept for non-AOT methods. This can save 20-30 MB. --> |
58 | | - <AndroidStripILAfterAOT>true</AndroidStripILAfterAOT> |
| 56 | + <!-- Keep IL bodies as a fallback for methods not covered by profiled AOT. |
| 57 | + AndroidEnableProfiledAot only AOT-compiles methods in the startup profile; the remaining |
| 58 | + methods require IL for JIT/interpretation. Stripping IL (AndroidStripILAfterAOT=true) |
| 59 | + removes that fallback, causing 'plt_entry not met' assertions in aot-runtime.c when |
| 60 | + the runtime encounters an un-AOT'd method (observed on .NET Timer thread at startup). |
| 61 | + The ~20-30 MB size saving is not worth the crash risk. --> |
| 62 | + <AndroidStripILAfterAOT>false</AndroidStripILAfterAOT> |
59 | 63 | <!-- Compress managed assemblies inside the APK (LZ4). Android extracts them on first run |
60 | 64 | but the download/APK size is significantly smaller. --> |
61 | 65 | <AndroidEnableAssemblyCompression>true</AndroidEnableAssemblyCompression> |
|
0 commit comments