当我尝试构建发行版APK时,出现此错误:
* 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
经过对flutter问题和flutter文档的搜索之后,我看到了一些与我的问题相同的问题。 在调试模式下,当我尝试在Android手机上流畅运行应用安装程序时,没有任何问题,它可以完美运行。但是我尝试了以下命令:
flutter clean
flutter build apk
我遇到了最大的错误。 这是我的pubspec.yaml文件:
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
我认为也许是flutter_datetime_picker: ^1.3.8
的问题。但我不确定。
可能请指导我解决此问题。谢谢
GitHub中的源代码:https://github.com/mehrdaddolatkhah/Atlas-gen-demo
编辑:
也许问题出在:path_provider:verifyReleaseResources
我通过这种方法在db_helper中使用path_provider:
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;
}
path_provider
可能有问题吗?
编辑数字2: 更新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
,并使用以下命令:
flutter build apk --release
我可以毫无问题地构建APK,但是在Android设备上安装APK时,我只会看到灰屏,没有任何显示。 为什么会这样?
答案 0 :(得分:2)
问题是因为我在另一个出现问题的小部件内使用了定位小部件。在我使用的所有屏幕上删除“定位”小部件并再次构建应用程序后,一切运行正常。
在--release
模式下,我们看不到任何日志,但是在debug
模式下,阅读完所有日志后,我看到必须删除Positioned小部件。
在--release
模式下,灰色屏幕等于debug
模式下的红色屏幕。
但在debug
模式下,我没有任何红屏,这让调试变得很困难
这是我在调试模式下看到的日志:
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): ════════════════════════════════════════════════════════════════════════════════════════════════════