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
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():RelativeLayout.LayoutParams.AlignWithParentbinds the Java fieldRelativeLayout.LayoutParams.alignWithParentRun the app under .NET 10, e.g. Debug build
dotnet build -t:Install,StartAndroidActivity.App crashes;
adb logcatcontains:The cause of the crash is in the binding for
AlignWithParent:Specifically, the
_members.InstanceFields.SetValue()call provides(sbyte)1 : (sbyte)0and nottrue : false.Did you find any workaround?
No.
Relevant log output