Зависание приложения Flutter в выпуске сборки, корректно работает при отладке, AndroidX?

#dart #flutter #release #androidx

#dart #flutter #выпуск #androidx

Вопрос:

окончательное обновление:

теперь все работает;

хотя раньше я не добавлял разрешение на доступ в Интернет, приложение работало отлично

(обращение к API и все такое), после обновления я должен явно изменить манифест.

На самом деле легко исправить:

 manifest xmlns:android="http://schemas.android.com/apk/res/android" 

package="com.xxx.xxx"> <uses-permission

 android:name="android.permission.INTERNET"/> <application

 android:name="io.flutter.app.FlutterApplication" android:label="xxx"

 android:icon="@mipmap/ic_launcher"> <activity android:name=".MainActivity"

 [...]
  

если вы тоже сталкиваетесь с такими же неожиданными изменениями поведения в своем приложении.

Это может быть причиной.

Спасибо за ваше внимание.


[обновление от 19/3/2019]: пользователь Facebook «Momo Roro» описал аналогичное поведение своего собственного приложения

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

чтобы связаться с API, это действительно соответствует моей ситуации,

фактически сразу после заставки мой поток должен получить

данные из API и маршрут к определенному экрану соответственно.

Есть идеи, почему это работает в debug, а не в release build?


Я повторяю приложение, над которым работаю некоторое время;

У меня было несколько версий выпуска,

но после обновления до flutter (я проклинаю себя каждый день за это)

приложение отлично работает в debug, но зависает в release build

(хотя при этом загружается «самодельная» заставка)

нет ошибок во время компиляции,

врач flutter говорит, что все в порядке,

Я закрепил свои зависимости и добавил это, чтобы предотвратить проблемы с AndroidX

 rootProject.allprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'androidx.core') {
                details.useVersion "1.0.1"
            }
            if (details.requested.group == 'androidx.lifecycle') {
                details.useVersion "2.0.0"
            }
            if (details.requested.group == 'androidx.versionedparcelable') {
                details.useVersion "1.0.0"
            }
        }
    }
}
  

Я пробовал: flutter очистить,

flutter build apk — целевая платформа = android-arm64,

сборка flutter — выпуск … ничего не работает

Я открыл проблему на github, но я был бы признателен, если бы вы могли указать мне правильное направление

здесь вы можете найти несколько журналов

заранее спасибо

Комментарии:

1. Если вы извлекаете предыдущую версию flutter, правильно ли выполняется сборка вашего выпуска?

2. до того, как обновление работало идеально, как я могу понизить версию flutter?

3. [обновление 19/3/2019]: Пользователь Facebook «Momo Roro» описал аналогичное поведение своего собственного приложения, утверждая, что это было вызвано неспособностью приложения связаться с API, на самом деле это соответствует моей ситуации, фактически сразу после заставки мой поток должен получать данные из API и соответственно перенаправляться на определенный экран. Есть идеи, почему это работает в debug, а не в release build?

4. В зависимости от вашей версии flutter с flutter version 1.0.0 или flutter version --force 1.0.0 , если вы хотите использовать версию 1.0.0. Имейте в виду, что если у вас есть локальная модификация репозитория flutter, вам нужно их сохранить или отменить и прочитать вручную.

5. Я столкнулся с аналогичными проблемами в библиотеке ‘barcode_scan’ с версией 1.0.0. переключение версии библиотеки на 0.0.8 решило все проблемы

Ответ №1:

окончательное обновление:

теперь все работает;

хотя раньше я не добавлял разрешение на доступ в Интернет, приложение работало отлично

(обращение к API и все такое), после обновления я должен явно изменить манифест.

На самом деле легко исправить:

xmlns манифеста: android = «http://schemas.android.com/apk/res/android »

пакет =»com.xxx.xxx»>

android: name =»android.разрешение.ИНТЕРНЕТ»/>

android: name=»io.flutter.app.FlutterApplication» android: label =»xxx»

android: значок =»@mipmap / ic_launcher»>

[…] если вы тоже испытываете те же неожиданные изменения поведения в своем приложении.

Это может быть причиной.

Спасибо за ваше внимание.

Ответ №2:

Только на этой неделе у меня была похожая проблема, которая не имела ничего общего с разрешениями приложения, а скорее с конфигурацией gradle.

Я пробовал разные предложения, но у меня сработало понижение моей зависимости от gradle с 4.1.2 на 3.5.4

  1. Перейдите к android/build.gradle (не android / app / …)
  2. из зависимостей измените версию gradle с classpath 'com.android.tools.build:gradle:4.1.2' или любую более высокую версию, которую вы используете, на classpath 'com.android.tools.build:gradle:3.5.4'