Как исправить "Сборка Gradle не смогла создать пакет Android". во флаттере

При запуске flutter build appbundle я получаю следующую ошибку: Сборка Gradle не смогла создать пакет Android-пакета.

При работе в подробном режиме это то, что я дополнительно получаю:

#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)

Я на Flutter стабильный канал v1.2.1.

Я могу построить АПК без проблем, хотя. Я также могу создать appbundle из другого проекта Flutter.

Основываясь на сообщениях об ошибках выше, как бы вы начали искать проблему? В чем может быть проблема здесь?

Ответы

Ответ 1

У меня похожая проблема с теми же сообщениями об ошибках. (Build Release APK успешно, но не удалось собрать пакет приложений) Решение, которое работает для меня, заключается в обновлении версии Android Gradle. Ниже приведен конфиг, который работает для меня (Вы также можете обновить его до последней версии):

  1. /android/gradle/wrapper/gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

  1. /android/build.gradle:

    buildscript {
        repositories {
           google()
           jcenter()
          }
    
        dependencies {
           classpath 'com.android.tools.build:gradle:3.2.1'
        }
    }
    

Ответ 2

Я прокомментировал список API в app.gradle, и тогда он работает:

android {
    splits {

        abi {

            //include "x86", "x86_64", "armeabi", "armeabi-v7a", "arm64-v8a"

        }
    }
  }

Ответ 4

Для меня в моей конфигурации выпуска файла приложения build.gradle отсутствовала строка signatureConfig signatureConfigs.debug. Но ошибка, которую я получаю, та же: "Сборке Gradle не удалось создать пакет Android".

android {
    ...
    buildTypes {
        release {
            signingConfig signingConfigs.debug
            ...
        }
    }
}

Ответ 5

Для меня изменение версии Gradle следующим образом решило проблему. (Я использовал более высокую версию)

андроид /build.gradle

  dependencies {
     classpath 'com.android.tools.build:gradle:3.3.0'
  }

Ответ 6

Существует множество причин, по которым вы можете столкнуться с неприятной проблемой, например Gradle build failed to produce an Android bundle package.

Что касается ответа @Tam Tam Tam, сначала попробуйте обновить ваш плагин gradle и android gradle до последней версии.

Если это не решит вашу проблему, попробуйте отключить все различные архитектуры и установите universalApk на false в вашем android/app/build.grade в разделе split. Поместите что-то вроде этого:

splits {
        abi {
            enable true
            reset()
            // include 'x86', 'armeabi-v7a', 'x86_64'
            universalApk false
        }
    }

Это предложение было предоставлено здесь: https://github.com/flutter/flutter/issues/27462#issuecomment-507229131

Это происходит потому, что gradle генерирует apk в соответствии с соглашением, например, app-<architecture-name>.apk, который не понятен флаттеру, он ожидает имена apk в другом формате, например просто app.apk. Отключение всех разных архитектурных названий приводит их к общему пониманию :)

Если это также не работает, попробуйте вспомнить, измените ли вы имя пакета com.example.packagename на что-то свое личное, например, com.mywebsite.packagename. Если вы сделали это, то вы, вероятно, изменили его везде, где это необходимо, например, в build.gradle и AndroidManifest.xml, но вы можете забыть изменить его в своем java (или классе kotlin).

Чтобы ваше новое имя пакета работало, вы также должны изменить имя пакета в src/main/java/com/mywebsite/packagename/MainActivity.java (в случае kotlin это src/main/kotlin/com/mywebsite/packagename/MainActivity.kt)

Надеюсь, это поможет.