Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter upgradation causing The getter 'fullObstruction' isn't defined for the class 'ObstructingPreferredSizeWidget'. error

My project was working fine with version 1.10.0, I have upgraded flutter to new version 1.12 and I am getting the below error

Compiler message:

../../../AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/flutter_platform_widgets-0.20.2/lib/src/platform_scaffold.dart:229:38: Error: The getter 'fullObstruction' isn't defined for the class 'ObstructingPreferredSizeWidget'.
 - 'ObstructingPreferredSizeWidget' is from 'package:flutter/src/cupertino/page_scaffold.dart' ('/C:/src/flutter/packages/flutter/lib/src/cupertino/page_scaffold.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'fullObstruction'.
      final obstruct = navigationBar.fullObstruction == null ||
                                     ^^^^^^^^^^^^^^^
../../../AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/flutter_platform_widgets-0.20.2/lib/src/platform_scaffold.dart:230:25: Error: The getter 'fullObstruction' isn't defined for the class 'ObstructingPreferredSizeWidget'.
 - 'ObstructingPreferredSizeWidget' is from 'package:flutter/src/cupertino/page_scaffold.dart' ('/C:/src/flutter/packages/flutter/lib/src/cupertino/page_scaffold.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'fullObstruction'.
          navigationBar.fullObstruction;
                    ^^^^^^^^^^^^^^^

Target kernel_snapshot failed: Exception: Errors during snapshot creation: null build failed.

Degrading the flutter to 1.10 again the project is working fine, but I need to upgrade to this 1.12 version for webrtc library. Can somebody help to solve this issue?

like image 623
neena Avatar asked Jan 26 '26 19:01

neena


1 Answers

For those who come across this issue, I am here with a solution. This issue took my 2 days and I was banging my head, why flutter package showing error eventhough I upgraded to the stable version of flutter v1.12.13+hotfix.5-stable.zip

Solution: The issue above saying that fullObstruction is not defined for the class ObstructingPreferredSizeWidget which is in the file CupertinoPageScaffold.dart. So I took the file in the notepad which is in the flutter package. The original path is C:\src2\flutter\packages\flutter\lib\src\cupertino , src2 is the folder where my flutter package resides.

In that file I saw a variable is changed in the newer versions, instead of below variable earlier it was fullObstruction, they changed to bool shouldFullyObstruct(BuildContext context); in newer versions.

abstract class ObstructingPreferredSizeWidget extends PreferredSizeWidget {
  /// If true, this widget fully obstructs widgets behind it by the specified
  /// size.
  ///
  /// If false, this widget partially obstructs.
  bool shouldFullyObstruct(BuildContext context);
}

Then I check which file this error is occuring, C:\src2\flutter.pub-cache\hosted\pub.dartlang.org\flutter_platform_widgets-0.20.2\lib\src\platform-scaffold.dart

earlier this line is using the deprecated variable fullObstruction, I replaced with the new variable and issue solved and my project is working as fine as earlier.

final obstruct = navigationBar.shouldFullyObstruct(context) == null || navigationBar.shouldFullyObstruct(context);

Hope this helps somebody.

like image 168
neena Avatar answered Jan 29 '26 09:01

neena



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!