-
Couldn't load subscription status.
- Fork 561
Closed
Labels
Area: App+Library BuildIssues when building Library projects or Application projects.Issues when building Library projects or Application projects.
Milestone
Description
Android application type
Android for .NET (net6.0-android, etc.)
Affected platform version
main branch
Description
Marshal method JNI parsing is not recursive and thus does not support "arrays of arrays", resulting in an error like:
error XAGPM7009: System.InvalidOperationException: Unsupported JNI array type '[' at index 56 of signature '(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[[B)V'
error XAGPM7009: at Xamarin.Android.Tasks.MarshalMethodsNativeAssemblyGenerator.<ParseJniSignature>g__JniTypeToManaged|55_0(Char jniType, <>c__DisplayClass55_0&)
error XAGPM7009: at Xamarin.Android.Tasks.MarshalMethodsNativeAssemblyGenerator.ParseJniSignature(String signature, MethodDefinition implementedMethod)
error XAGPM7009: at Xamarin.Android.Tasks.MarshalMethodsNativeAssemblyGenerator.ProcessAndAddMethod(List`1 allMethods, MarshalMethodEntry entry, Boolean useFullNativeSignature, Dictionary`2 seenClasses, Dictionary`2 overloadedNativeSymbolNames)
error XAGPM7009: at Xamarin.Android.Tasks.MarshalMethodsNativeAssemblyGenerator.Init()
error XAGPM7009: at Xamarin.Android.Tasks.GeneratePackageManagerJava.AddEnvironment()
error XAGPM7009: at Xamarin.Android.Tasks.GeneratePackageManagerJava.RunTask()
error XAGPM7009: at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/builder/azdo/_work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 17
I think the offending Java is:
package com.xamarin.android;
public interface DataListener {
void onDataReceived (
java.lang.String fromNode,
java.lang.String fromChannel,
java.lang.String payloadType,
byte[][] payload
);
}Which creates this binding:
// Metadata.xml XPath interface reference: path="/api/package[@name='com.xamarin.android']/interface[@name='DataListener']"
[Register ("com/xamarin/android/DataListener", "", "Com.Xamarin.Android.IDataListenerInvoker")]
public partial interface IDataListener : IJavaObject, IJavaPeerable {
// Metadata.xml XPath method reference: path="/api/package[@name='com.xamarin.android']/interface[@name='DataListener']/method[@name='onDataReceived' and count(parameter)=4 and parameter[1][@type='java.lang.String'] and parameter[2][@type='java.lang.String'] and parameter[3][@type='java.lang.String'] and parameter[4][@type='byte[][]']]"
[Register ("onDataReceived", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[[B)V", "GetOnDataReceived_Ljava_lang_String_Ljava_lang_String_Ljava_lang_String_arrayarrayBHandler:Com.Xamarin.Android.IDataListenerInvoker, Xamarin.Android.BindingRuntime-Tests")]
void OnDataReceived (string? p0, string? p1, string? p2, byte[][]? p3);
}Found porting JcwGen-Tests to .NET.
WIP PR: #7682
CI Failure: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=7177413&view=logs&j=5ded96ba-e325-5baf-fde0-f1868aa3be52&t=c2c4f07f-d496-5615-0a30-2918839712d3
Steps to Reproduce
Provided above.
Did you find any workaround?
No response
Relevant log output
No response
Metadata
Metadata
Assignees
Labels
Area: App+Library BuildIssues when building Library projects or Application projects.Issues when building Library projects or Application projects.