Commit 0c5d454
authored
[Java.Interop] fix .NET 6 linker warnings (#870)
Context: dotnet/android#5652
If you build a .NET 6 Android app:
dotnet new android
dotnet build -c Release -bl -p:SuppressTrimAnalysisWarnings=false
You get warnings like:
external\Java.Interop\src\Java.Interop\Java.Interop\JniRuntime.JniMarshalMemberBuilder.cs(53,4): warning IL2026: Java.Interop.JniRuntime.SetMarshalMemberBuilder(JniRuntime.CreationOptions): Using method 'System.Reflection.Assembly.GetType(String)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. Types might be removed.
Adding this is not sufficient to fix the warning:
[DynamicDependency (DynamicallyAccessedMemberTypes.PublicParameterlessConstructor, "Java.Interop.MarshalMemberBuilder", "Java.Interop.Export")]
You also need to suppress [warning `IL2026`][0]:
[UnconditionalSuppressMessage ("Trimming", "IL2026", Justification = "DynamicDependency should preserve the constructor.")]
Then, because `Java.Interop.Export.dll` is not always included in
apps [^0], we also need to suppress [warning IL2035][1]:
[UnconditionalSuppressMessage ("Trimming", "IL2035", Justification = "Java.Interop.Export.dll is not always present.")]
[0]: https://docs.microsoft.com/en-us/dotnet/core/deploying/trim-warnings/il2026
[1]: https://github.com/mono/linker/blob/66fd7119cd5744dd8bd37442ac74d2a326085406/docs/error-codes.md#il2035-unresolved-assembly-assemblyname-in-dynamicdependencyattribute
[^0]: `Java.Interop.Export.dll` is not shipped as in Xamarin.Android
as a "MonoAndroid-profile" assembly -- and likely shouldn't be
shipped *at all* right now -- and thus will only reliably exist
for the few people building xamarin/Java.Interop.1 parent 8898bc1 commit 0c5d454
File tree
1 file changed
+6
-0
lines changed- src/Java.Interop/Java.Interop
1 file changed
+6
-0
lines changedLines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
30 | 36 | | |
31 | 37 | | |
32 | 38 | | |
| |||
0 commit comments