-
Notifications
You must be signed in to change notification settings - Fork 564
Closed
dotnet/java-interop
#1353Labels
Area: App RuntimeIssues in `libmonodroid.so`.Issues in `libmonodroid.so`.needs-triageIssues that need to be assigned.Issues that need to be assigned.
Description
Android framework version
net10.0-android (Preview)
Affected platform version
.NET 10 Preview 6
Description
Bound boolean fields can no longer be used.
Steps to Reproduce
Add the following code to Activity.OnCreate():
var p = new RelativeLayout.LayoutParams(1, 2)
{
AlignWithParent = true,
};RelativeLayout.LayoutParams.AlignWithParent binds the Java field RelativeLayout.LayoutParams.alignWithParent
Run the app under .NET 10, e.g. Debug build dotnet build -t:Install,StartAndroidActivity.
App crashes; adb logcat contains:
F droid_boolfiel: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: attempt to access field boolean android.widget.RelativeLayout$LayoutParams.alignWithParent of type boolean with the wrong type byte: 0x709385d8
F droid_boolfiel: java_vm_ext.cc:542] in call to SetByteField
F droid_boolfiel: java_vm_ext.cc:542] from void crc6463d68d2626be2acb.MainActivity.n_onCreate(android.os.Bundle)
The cause of the crash is in the binding for AlignWithParent:
public partial class RelativeLayout : Android.Views.ViewGroup {
public new partial class LayoutParams : Android.Views.ViewGroup.MarginLayoutParams {
[Register ("alignWithParent")]
public bool AlignWithParent {
get {
const string __id = "alignWithParent.Z";
var __v = _members.InstanceFields.GetBooleanValue (__id, this);
return __v;
}
set {
const string __id = "alignWithParent.Z";
try {
_members.InstanceFields.SetValue (__id, this, value ? (sbyte)1 : (sbyte)0);
} finally {
}
}
}
}
}Specifically, the _members.InstanceFields.SetValue() call provides (sbyte)1 : (sbyte)0 and not true : false.
Did you find any workaround?
No.
Relevant log output
Metadata
Metadata
Assignees
Labels
Area: App RuntimeIssues in `libmonodroid.so`.Issues in `libmonodroid.so`.needs-triageIssues that need to be assigned.Issues that need to be assigned.