xamarin / Xamarin.Forms

Xamarin.Forms is no longer supported. Migrate your apps to .NET MAUI.
https://aka.ms/xamarin-upgrade
Other
5.63k stars 1.87k forks source link

[Bug] Java.Lang.IllegalStateException: View with id 37: crc643f46942d9dd1fff9.PageRenderer#onMeasure() did not set the measured dimension by calling setMeasuredDimension() #14447

Open sunkerGit opened 3 years ago

sunkerGit commented 3 years ago

Description

com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout FormsViewGroup.java, line 36 Java.Lang.IllegalStateException: View with id 37: crc643f46942d9dd1fff9.PageRenderer#onMeasure() did not set the measured dimension by calling setMeasuredDimension()

Steps to Reproduce

From App center:

Stack Traces:

JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args)
JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters)
FormsViewGroup.MeasureAndLayout (System.Int32 p0, System.Int32 p1, System.Int32 p2, System.Int32 p3, System.Int32 p4, System.Int32 p5)
VisualElementTracker.UpdateLayout ()
VisualElementRenderer`1[TElement].UpdateLayout ()
VisualElementRenderer`1[TElement].UpdateLayout (System.Collections.Generic.IEnumerable`1[T] children)
VisualElementRenderer`1[TElement].OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b)
NavigationPageRenderer.OnLayout (System.Boolean changed, System.Int32 l, System.Int32 t, System.Int32 r, System.Int32 b)
FormsViewGroup.n_OnLayout_ZIIII (System.IntPtr jnienv, System.IntPtr native__this, System.Boolean p0, System.Int32 p1, System.Int32 p2, System.Int32 p3, System.Int32 p4)
(wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.36(intptr,intptr,bool,int,int,int,int)
java.lang.IllegalStateException: View with id 37: crc643f46942d9dd1fff9.PageRenderer#onMeasure() did not set the measured dimension by calling setMeasuredDimension()
android.view.View.measure View.java:27144
com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout FormsViewGroup.java:36
crc64720bb2db43a66fe9.NavigationPageRenderer.n_onLayout(Native Method)
crc64720bb2db43a66fe9.NavigationPageRenderer.onLayout NavigationPageRenderer.java:65
android.view.View.layout View.java:24475
android.view.ViewGroup.layout ViewGroup.java:7383
com.xamarin.forms.platform.android.FormsViewGroup.measureAndLayout FormsViewGroup.java:37
crc643f46942d9dd1fff9.PlatformRenderer.n_onLayout(Native Method)
crc643f46942d9dd1fff9.PlatformRenderer.onLayout PlatformRenderer.java:55
android.view.View.layout View.java:24475
android.view.ViewGroup.layout ViewGroup.java:7383
android.widget.RelativeLayout.onLayout RelativeLayout.java:1103
android.view.View.layout View.java:24475
android.view.ViewGroup.layout ViewGroup.java:7383
android.widget.FrameLayout.layoutChildren FrameLayout.java:332
android.widget.FrameLayout.onLayout FrameLayout.java:270
android.view.View.layout View.java:24475
android.view.ViewGroup.layout ViewGroup.java:7383
android.widget.FrameLayout.layoutChildren FrameLayout.java:332
android.widget.FrameLayout.onLayout FrameLayout.java:270
android.view.View.layout View.java:24475
android.view.ViewGroup.layout ViewGroup.java:7383
android.widget.FrameLayout.layoutChildren FrameLayout.java:332
android.widget.FrameLayout.onLayout FrameLayout.java:270
android.view.View.layout View.java:24475
android.view.ViewGroup.layout ViewGroup.java:7383
android.widget.LinearLayout.setChildFrame LinearLayout.java:1829
android.widget.LinearLayout.layoutVertical LinearLayout.java:1673
android.widget.LinearLayout.onLayout LinearLayout.java:1582
android.view.View.layout View.java:24475
android.view.ViewGroup.layout ViewGroup.java:7383
android.widget.FrameLayout.layoutChildren FrameLayout.java:332
android.widget.FrameLayout.onLayout FrameLayout.java:270
com.android.internal.policy.DecorView.onLayout DecorView.java:1225
android.view.View.layout View.java:24475
android.view.ViewGroup.layout ViewGroup.java:7383
android.view.ViewRootImpl.performLayout ViewRootImpl.java:4260
android.view.ViewRootImpl.performTraversals ViewRootImpl.java:3695
android.view.ViewRootImpl.doTraversal ViewRootImpl.java:2618
android.view.ViewRootImpl$TraversalRunnable.run ViewRootImpl.java:9971
android.view.Choreographer$CallbackRecord.run Choreographer.java:1010
android.view.Choreographer.doCallbacks Choreographer.java:809
android.view.Choreographer.doFrame Choreographer.java:744
android.view.Choreographer$FrameDisplayEventReceiver.run Choreographer.java:995
android.os.Handler.handleCallback Handler.java:938
android.os.Handler.dispatchMessage Handler.java:99
android.os.Looper.loop Looper.java:246
android.app.ActivityThread.main ActivityThread.java:8512
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run RuntimeInit.java:602
com.android.internal.os.ZygoteInit.main ZygoteInit.java:1130

Expected Behavior

no crash on app center when constructing layout

Actual Behavior

Basic Information

Environment

=== Visual Studio Community 2019 for Mac ===

Version 8.10.6 (build 10) Installation UUID: b8719d44-73d5-41fa-92a3-89554cbb5dcf GTK+ 2.24.23 (Raleigh theme) Xamarin.Mac 6.18.0.23 (d16-6 / 088c73638)

Package version: 612000140

=== Mono Framework MDK ===

Runtime: Mono 6.12.0.140 (2020-02/51d876a041e) (64-bit) Package version: 612000140

=== Roslyn (Language Service) ===

3.10.0-4.21269.26+029847714208ebe49668667c60ea5b0a294e0fcb

=== NuGet ===

Version: 5.9.0.7134

=== .NET Core SDK ===

SDK: /usr/local/share/dotnet/sdk/5.0.302/Sdks SDK Versions: 5.0.302 5.0.301 5.0.203 5.0.202 5.0.201 5.0.103 5.0.102 5.0.101 5.0.100 3.1.411 3.1.410 3.1.409 3.1.408 3.1.407 3.1.406 3.1.405 3.1.404 3.1.403 3.1.402 3.1.401 3.1.302 3.1.301 3.1.300 3.1.200 3.1.102 3.1.101 3.1.100 3.0.101 3.0.100 2.1.701 MSBuild SDKs: /Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/bin/MSBuild/Current/bin/Sdks

=== .NET Core Runtime ===

Runtime: /usr/local/share/dotnet/dotnet Runtime Versions: 5.0.8 5.0.7 5.0.6 5.0.5 5.0.4 5.0.3 5.0.2 5.0.1 5.0.0 3.1.17 3.1.16 3.1.15 3.1.14 3.1.13 3.1.12 3.1.11 3.1.10 3.1.9 3.1.8 3.1.7 3.1.6 3.1.5 3.1.4 3.1.2 3.1.1 3.1.0 3.0.1 3.0.0 2.1.23 2.1.22 2.1.21 2.1.20 2.1.19 2.1.18 2.1.16 2.1.15 2.1.14 2.1.13 2.1.12

=== .NET Core 3.1 SDK ===

SDK: 3.1.411

=== Xamarin.Profiler ===

Version: 1.6.12.26 Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

=== Updater ===

Version: 11

=== Xamarin Designer ===

Version: 16.10.0.119 Hash: 36a2d986f Branch: remotes/origin/d16-10 Build date: 2021-06-02 19:41:34 UTC

=== Xamarin.Android ===

Version: 11.3.0.4 (Visual Studio Community) Commit: xamarin-android/d16-10/ae14caf Android SDK: /Users/kok.sang/Library/Developer/Xamarin/android-sdk-macosx Supported Android versions: 6.0 (API level 23) 7.0 (API level 24) 7.1 (API level 25) 8.0 (API level 26) 8.1 (API level 27)

SDK Tools Version: 26.1.1 SDK Platform Tools Version: 30.0.4 SDK Build Tools Version: 30.0.2

Build Information: Mono: b4a3858 Java.Interop: xamarin/java.interop/d16-10@f39db25 ProGuard: Guardsquare/proguard/v7.0.1@912d149 SQLite: xamarin/sqlite/3.35.4@85460d3 Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-10@c5732a0

=== Microsoft OpenJDK for Mobile ===

Java SDK: /Users/kok.sang/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_8.0.25 1.8.0-25 Android Designer EPL code available here: https://github.com/xamarin/AndroidDesigner.EPL

=== Android SDK Manager ===

Version: 16.10.0.12 Hash: e240b8c Branch: remotes/origin/d16-10 Build date: 2021-06-01 18:26:34 UTC

=== Android Device Manager ===

Version: 16.10.0.14 Hash: e340248 Branch: remotes/origin/d16-10 Build date: 2021-06-01 18:26:52 UTC

=== Apple Developer Tools ===

Xcode 12.5.1 (18212) Build 12E507

=== Xamarin.Mac ===

Xamarin.Mac not installed. Can't find /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version.

=== Xamarin.iOS ===

Version: 14.20.0.24 (Visual Studio Community) Hash: c4b89cddb Branch: d16-10 Build date: 2021-06-15 22:03:01-0400

=== Build Information ===

Release ID: 810060010 Git revision: 263d2fc9398e8092c231fa5d310cd72205cd627c Build date: 2021-07-08 14:37:29-04 Build branch: release-8.10

=== Operating System ===

Mac OS X 10.16.0 Darwin 20.4.0 Darwin Kernel Version 20.4.0 Thu Apr 22 21:46:47 PDT 2021 root:xnu-7195.101.2~1/RELEASE_X86_64 x86_64

=== Enabled user installed extensions ===

Android Signature Tool 2.2.0

thisisthekap commented 3 years ago

@hartez @aritchie @samhouts We think that we can workaround this issue by callign ForceLayout after doing layout changes like changing Margin or Height & Width.

What do you think about that? Can it actually be a workaround for this one, or was it just a shot into the darkness with no actual benefit?