“如何修复”;Gradle build未能生成Android捆绑包。”;飘飘然
跑步时“如何修复”;Gradle build未能生成Android捆绑包。”;飘飘然,build,flutter,android-gradle-plugin,android-app-bundle,Build,Flutter,Android Gradle Plugin,Android App Bundle,跑步时 flatter build appbundle我收到以下错误: Gradle build无法生成Android捆绑包 android { ... buildTypes { release { signingConfig signingConfigs.debug ... } } } 在详细模式下运行时,这是我另外得到的: #0 throwToolExit (package:f
flatter build appbundle
我收到以下错误:
Gradle build无法生成Android捆绑包
android {
...
buildTypes {
release {
signingConfig signingConfigs.debug
...
}
}
}
在详细模式下运行时,这是我另外得到的:
#0 throwToolExit (package:flutter_tools/src/base/common.dart:24:3)
#1 _buildGradleProjectV2 (package:flutter_tools/src/android/gradle.dart:585:7)
<asynchronous suspension>
#2 buildGradleProject (package:flutter_tools/src/android/gradle.dart:331:14)
<asynchronous suspension>
#3 buildAppBundle (package:flutter_tools/src/android/app_bundle.dart:43:10)
<asynchronous suspension>
#4 BuildAppBundleCommand.runCommand (package:flutter_tools/src/commands/build_appbundle.dart:43:11)
<asynchronous suspension>
#5 FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:545:18)
#6 _asyncThenWrapperHelper.<anonymous closure> (dart:async/runtime/libasync_patch.dart:77:64)
#7 _rootRunUnary (dart:async/zone.dart:1132:38)
#8 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#9 _FutureListener.handleValue (dart:async/future_impl.dart:126:18)
#10 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:639:45)
#11 Future._propagateToListeners (dart:async/future_impl.dart:668:32)
#12 Future._complete (dart:async/future_impl.dart:473:7)
#13 _SyncCompleter.complete (dart:async/future_impl.dart:51:12)
#14 _AsyncAwaitCompleter.complete.<anonymous closure> (dart:async/runtime/libasync_patch.dart:33:20)
#15 _rootRun (dart:async/zone.dart:1124:13)
#16 _CustomZone.run (dart:async/zone.dart:1021:19)
#17 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#18 _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#19 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#20 _runPendingImmediateCallback (dart:isolate/runtime/libisolate_patch.dart:115:13)
#21 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:172:5)
#0 throwToolExit(包:flift_tools/src/base/common.dart:24:3)
#1 buildGradleProjectV2(包:颤振工具/src/android/gradle.dart:585:7)
#2 buildGradleProject(包:颤振工具/src/android/gradle.dart:331:14)
#3 buildAppBundle(包:flatter\u tools/src/android/app\u bundle.dart:43:10)
#4 BuildAppBundleCommand.runCommand(包:flatter\u tools/src/commands/build\u appbundle.dart:43:11)
#5颤振命令。验证运行命令(包:颤振工具/src/runner/颤振命令。dart:545:18)
#6_asyncWrapperHelper。(dart:async/runtime/libasync_patch.dart:77:64)
#7_rootrunary(dart:async/zone.dart:1132:38)
#8_CustomZone.runUnary(dart:async/zone.dart:1029:19)
#9\u FutureListener.handleValue(dart:async/future\u impl.dart:126:18)
#10 Future.\u PropagateTListeners.handleValueCallback(dart:async/Future\u impl.dart:639:45)
#11未来传播到侦听器(dart:async/Future\u impl.dart:668:32)
#12未来完成(dart:async/Future\u impl.dart:473:7)
#13\u SyncCompleter.complete(dart:async/future\u impl.dart:51:12)
#14_asyncwait completer.complete。(dart:async/runtime/libasync_patch.dart:33:20)
#15_rootRun(dart:async/zone.dart:1124:13)
#16_CustomZone.run(dart:async/zone.dart:1021:19)
#17_CustomZone.bindCallback。(dart:async/zone.dart:947:23)
#18 microtaskLoop(dart:async/schedule_microtask.dart:41:21)
#19_startMicrotaskLoop(dart:async/schedule_microtask.dart:50:5)
#20 _runPendingImmediateCallback(dart:isolate/runtime/libisolate_补丁。dart:115:13)
#21 RawReceivePortImpl.handleMessage(dart:isolate/runtime/libisolate_patch.dart:172:5)
我在颤振稳定通道v1.2.1上
不过,我可以毫无问题地构建apk。
我还可以从另一个Flatter项目构建appbundle
根据上面的错误消息,您将如何开始查找问题?
这里可能有什么问题?我对相同的错误消息也有类似的问题。 (生成发布APK成功,但未能生成应用程序包) 我的解决方案是升级Android Gradle版本。 以下是适用于我的配置(您也可以升级到最新版本):
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
我在app.gradle中对API列表发表了评论,然后它开始工作了:
android {
splits {
abi {
//include "x86", "x86_64", "armeabi", "armeabi-v7a", "arm64-v8a"
}
}
}
对我来说,迁移到AndroidX修复了所有问题: 对于我来说,我的应用程序
build.gradle
文件的发布配置中缺少signingConfig signingConfigs.debug行。但我得到的错误是相同的“GradleBuild未能生成Android捆绑包”
对于我来说,改变我的gradle版本,如下一行解决了这个问题。(我使用的是更高版本) android/build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
}
您可能会遇到令人沮丧的问题,例如,
gradlebuild未能生成Android捆绑包
在@Tam-Tam的回答中,首先尝试将您的gradle和android gradle插件更新为最新版本
如果这不能解决您的问题,请尝试禁用所有不同的体系结构,并在拆分部分的android/app/build.grade
中将universalApk
设置为false
。这样说:
splits {
abi {
enable true
reset()
// include 'x86', 'armeabi-v7a', 'x86_64'
universalApk false
}
}
buildTypes {
release {
// signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
这里提出了这一建议:
这是因为gradle按照惯例生成apk,例如,app-.apk
,这是颤振无法理解的,它希望apk名称采用另一种格式,例如,简单地app.apk
。禁用所有不同的体系结构名称使他们达成共识:)
如果这也不起作用,那么请记住是否将包名com.example.packagename
更改为您自己的个人名称,如com.mywebsite.packagename
。如果您已经这样做了,那么您可能会在任何需要的地方更改它,例如在build.gradle
s和AndroidManifest.xml
中,但是您可能忘记在java(或kotlin类)中更改它
要使新的包名生效,还必须在src/main/java/com/mywebsite/packagename/MainActivity.java
中更改包名(对于kotlin,它是src/main/kotlin/com/mywebsite/packagename/MainActivity.kt
)
我希望这能有所帮助。这是我的senario:
我正在使用来自CI的远程计算机使用release sign config对apk进行签名。
因此,我在build.gradle
中删除了buildTypes.release.signConfig
,如下所示:
splits {
abi {
enable true
reset()
// include 'x86', 'armeabi-v7a', 'x86_64'
universalApk false
}
}
buildTypes {
release {
// signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
这使得输出apk的名称更改为app release unsigned.apk
,但Flatter期望app release.apk
,这导致Gradle build无法生成Android捆绑包。
添加signingConfig signingConfigs.release
后,问题得到了解决。在我的情况下,我向项目中添加了flavor,但忘了向运行/调试配置中添加flavor名称。我丢失了默认项目的部分配置。gradle
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
谢谢!在进一步调查这个问题之前,我还必须删除我的gradle文件(三个不同的地方)中对kotlin的引用,我认为你可以尝试的一个技巧是使用最新的Android SDK、Android gradle插件和Flatter版本创建一个新的Flatter项目,以确保你的环境能够首先构建应用程序包。然后,您可以将“/lib”中的dart文件复制到要从中构建应用程序包的新项目中