Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何修复”;Gradle build未能生成Android捆绑包。”;飘飘然_Build_Flutter_Android Gradle Plugin_Android App Bundle - Fatal编程技术网

“如何修复”;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版本。 以下是适用于我的配置(您也可以升级到最新版本):

  • /android/gradle/wrapper/gradle wrapper.properties
  • distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

  • /android/build.gradle

    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文件复制到要从中构建应用程序包的新项目中