When I try to build APK as the release version, I got a gray screen without nothing inside that in Flutter

1,853

the problem was because I used a Positioned widget inside some another Widget that makes a problem. after removing a Positioned widget in all screen that I used and build the app again everything works perfectly. in --release mode we can't see any log but in debug mode after I read all log I see I had to remove the Positioned widget. in --release mode a gray screen is equal to red screen in debug mode. but I have not any red screen in debug mode in this happen make hard for me debugging

and here is a log that I saw in debug mode:

I/flutter (12822): The following assertion was thrown while applying parent data.:
I/flutter (12822): Incorrect use of ParentDataWidget.
I/flutter (12822): The ParentDataWidget Positioned wants to apply ParentData of type StackParentData to a RenderObject,
I/flutter (12822): which has been set up to accept ParentData of incompatible type FlexParentData.
I/flutter (12822): Usually, this means that the Positioned widget has the wrong ancestor RenderObjectWidget. Typically,
I/flutter (12822): Positioned widgets are placed directly inside Stack widgets.
I/flutter (12822): The offending Positioned is currently placed inside a Column widget.
I/flutter (12822): The ownership chain for the RenderObject that received the incompatible parent data was:
I/flutter (12822):   Opacity ← ControlledAnimation<Map<String, dynamic>> ← FadeAnimation ← Positioned ← Column ←
I/flutter (12822): Container ← _SingleChildViewport ← IgnorePointer-[GlobalKey#7bb01] ← Semantics ← _PointerListener ←
I/flutter (12822): ⋯
I/flutter (12822): 
I/flutter (12822): When the exception was thrown, this was the stack:
I/flutter (12822): #0      RenderObjectElement._updateParentData.<anonymous closure> (package:flutter/src/widgets/framework.dart:5687:11)
I/flutter (12822): #1      RenderObjectElement._updateParentData (package:flutter/src/widgets/framework.dart:5703:6)
I/flutter (12822): #2      RenderObjectElement.attachRenderObject (package:flutter/src/widgets/framework.dart:5724:7)
I/flutter (12822): #3      RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5418:5)
I/flutter (12822): #4      SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5871:11)
I/flutter (12822): ...     Normal element mounting (21 frames)
I/flutter (12822): #25     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3488:14)
I/flutter (12822): #26     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5989:32)
I/flutter (12822): ...     Normal element mounting (115 frames)
I/flutter (12822): #141    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3488:14)
I/flutter (12822): #142    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5989:32)
I/flutter (12822): ...     Normal element mounting (191 frames)
I/flutter (12822): #333    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3488:14)
I/flutter (12822): #334    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5989:32)
I/flutter (12822): ...     Normal element mounting (360 frames)
I/flutter (12822): #694    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3488:14)
I/flutter (12822): #695    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5989:32)
I/flutter (12822): ...     Normal element mounting (240 frames)
I/flutter (12822): #935    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3488:14)
I/flutter (12822): #936    Element.updateChild (package:flutter/src/widgets/framework.dart:3256:18)
I/flutter (12822): #937    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1132:16)
I/flutter (12822): #938    RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1103:5)
I/flutter (12822): #939    RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1045:17)
I/flutter (12822): #940    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2618:19)
I/flutter (12822): #941    RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1044:13)
I/flutter (12822): #942    WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:925:7)
I/flutter (12822): #943    WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:906:7)
I/flutter (12822): (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
I/flutter (12822): ════════════════════════════════════════════════════════════════════════════════════════════════════

Share:
1,853
Mehrdad Dolatkhah
Author by

Mehrdad Dolatkhah

Software engineer

Updated on December 21, 2022

Comments

  • Mehrdad Dolatkhah
    Mehrdad Dolatkhah over 1 year

    when I try to build release apk I got this error:

    
    * What went wrong:                                                      
    Execution failed for task ':path_provider:verifyReleaseResources'.      
    > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
       > Android resource linking failed                                    
         /home/mehrdad/.gradle/caches/transforms-2/files-2.1/a528b13ac93e64cafa3d0480e2c93207/core-1.1.0/res/values/values.xml:142:5-173:25: AAPT: error: resource android:attr/fontVariationSettings not found.
    
         /home/mehrdad/.gradle/caches/transforms-2/files-2.1/a528b13ac93e64cafa3d0480e2c93207/core-1.1.0/res/values/values.xml:142:5-173:25: AAPT: error: resource android:attr/ttcIndex not found.
    
    
    * Try:                                                                  
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org                              
    
    BUILD FAILED in 34s 
    

    after some search in the flutter issue and flutter document, I see some same question that was the same with my problem. in debug mode when I try flutter run app install on android phone without any problem and it works perfectly. but then I try these commands:

    flutter clean
    flutter build apk
    

    I got top error. this is my pubspec.yaml file:

    name: atlas_gen_demo
    description: A new Flutter project.
    
    # The following line prevents the package from being accidentally published to
    # pub.dev using `pub publish`. This is preferred for private packages.
    publish_to: "none" # Remove this line if you wish to publish to pub.dev
    
    # The following defines the version and build number for your application.
    # A version number is three numbers separated by dots, like 1.2.43
    # followed by an optional build number separated by a +.
    # Both the version and the builder number may be overridden in flutter
    # build by specifying --build-name and --build-number, respectively.
    # In Android, build-name is used as versionName while build-number used as versionCode.
    # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
    # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
    # Read more about iOS versioning at
    # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
    version: 1.0.0+1
    
    environment:
      sdk: ">=2.7.0 <3.0.0"
    
    dependencies:
      flutter:
        sdk: flutter
    
      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^0.1.3
      simple_animations: ^1.3.3
      sqflite: ^1.1.3
      path_provider: ^0.4.1
      shared_preferences: ^0.5.0
      flushbar: ^1.5.0
      flutter_datetime_picker: ^1.3.8
        #git:
          #url: https://github.com/derohimat/flutter_datetime_picker.git
    
    dev_dependencies:
      flutter_test:
        sdk: flutter
    
    # For information on the generic Dart part of this file, see the
    # following page: https://dart.dev/tools/pub/pubspec
    
    # The following section is specific to Flutter.
    flutter:
      # The following line ensures that the Material Icons font is
      # included with your application, so that you can use the icons in
      # the material Icons class.
      uses-material-design: true
    
      # To add assets to your application, add an assets section, like this:
      assets:
        - assets/images/
      # An image asset can refer to one or more resolution-specific "variants", see
      # https://flutter.dev/assets-and-images/#resolution-aware.
      # For details regarding adding assets from package dependencies, see
      # https://flutter.dev/assets-and-images/#from-packages
      # To add custom fonts to your application, add a fonts section here,
      # in this "flutter" section. Each entry in this list should have a
      # "family" key with the font family name, and a "fonts" key with a
      # list giving the asset and other descriptors for the font. For
      # example:
      fonts:
        - family: persianBold
          fonts:
            - asset: assets/fonts/main_bold.ttf
    
        - family: persianMedium
          fonts:
            - asset: assets/fonts/main_medium.ttf
      # For details regarding fonts from package dependencies,
      # see https://flutter.dev/custom-fonts/#from-packages
    

    I think maybe this problem is for flutter_datetime_picker: ^1.3.8. but I'm not sure. may please guide me to fix this problem. thank you

    source code in GitHub: https://github.com/mehrdaddolatkhah/Atlas-gen-demo

    Edit: or maybe the problem is for :path_provider:verifyReleaseResources I used path_provider in my db_helper in this method:

      initDb() async {
        io.Directory documentDirectory = await getApplicationDocumentsDirectory();
        String path = join(documentDirectory.path, DB_NAME);
        var db = await openDatabase(path, version: 1, onCreate: _onCreate);
        return db;
      }
    

    is it possible we have a problem with path_provider?

    Edit number 2: after update pubspec.yaml:

    cupertino_icons: ^0.1.3
      simple_animations: ^1.3.3
      sqflite: ^1.1.3
      path_provider: ^1.6.10
      shared_preferences: ^0.5.0
      flushbar: ^1.5.0
      flutter_datetime_picker: ^1.3.8
    

    and with this command: flutter build apk --release

    I can build an APK without any problem but when installing the APK on the android device I just see a gray screen without nothing. why this happen?

    • Sanket Vekariya
      Sanket Vekariya almost 4 years
      Is your code updated on git? because I am not facing any kind of issue with that.
    • Sanket Vekariya
      Sanket Vekariya almost 4 years
      Checkout your git project release build here: gofile.io/d/BXHMJT and it works fine for me. :)
    • Mehrdad Dolatkhah
      Mehrdad Dolatkhah almost 4 years
      thank you for your response guys. I fixed the issue. this problem was because use positioned in my widget tree and after remove positioned everything worked correctly.