在 Flutter 中发布的“flutter build apk”在打开应用程序时崩溃

R R*_*ara 3 installation release flutter

我已经设置了构建应用程序版本,如 pro-guard、icon、manifest 等,但没有flavor. 我将 dir 迁移/android到,AndroidX因为如果没有,运行时无法构建应用程序版本flutter build apk。所以我迁移它并成功。像下面这样:

rifafauzi6@Anonymous-X456UR:/media/rifafauzi6/NM/Materi/BackUp Aplikasi Android/Flutter Project/vallery$ flutter build apk
You are building a fat APK that includes binaries for android-arm, android-arm64.
If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
    To generate an app bundle, run:
        flutter build appbundle --target-platform android-arm,android-arm64
        Learn more on: https://developer.android.com/guide/app-bundle
    To split the APKs per ABI, run:
        flutter build apk --target-platform android-arm,android-arm64 --split-per-abi
        Learn more on:  https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split
Initializing gradle...                                              1.3s
Resolving dependencies...                                           2.9s
Running Gradle task 'assembleRelease'...                                
Running Gradle task 'assembleRelease'... Done                      59.6s
Built build/app/outputs/apk/release/app-release.apk (16.1MB).
Run Code Online (Sandbox Code Playgroud)

然后成功后,我用两种方式安装它:

使用颤振安装

rifafauzi6@Anonymous-X456UR:/media/rifafauzi6/NM/Materi/BackUp Aplikasi Android/Flutter Project/vallery$ flutter install
Initializing gradle...                                              1.3s
Resolving dependencies...                                           2.5s
Installing app.apk to SM A600G...
Installing build/app/outputs/apk/app.apk...                        16.4s
Run Code Online (Sandbox Code Playgroud)

使用手册,转到该目录,并安装它。

在此处输入图片说明

我已经尝试过flutter build apk --split-per-abi像上面那样我也用两种方式安装它。但是在显示启动画面之前打开应用程序时仍然崩溃。这是 dir 中发布应用程序的清单main

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="my_package">

    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="Vallery"
        android:usesCleartextTraffic="true"
        android:icon="@mipmap/ic_vallery">
        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- This keeps the window background of the activity showing
                 until Flutter renders its first frame. It can be removed if
                 there is no splash screen (such as the default splash screen
                 defined in @style/LaunchTheme). -->
            <meta-data
                android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
                android:value="true" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

这是输出flutter doctor -v

[?] Flutter (Channel stable, v1.7.8+hotfix.4, on Linux, locale en_US.UTF-8)
    • Flutter version 1.7.8+hotfix.4 at /media/rifafauzi6/NM/Materi/flutter
    • Framework revision 20e59316b8 (8 weeks ago), 2019-07-18 20:04:33 -0700
    • Engine revision fee001c93f
    • Dart version 2.4.0


[?] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /home/rifafauzi6/Android/Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /opt/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[?] Android Studio (version 3.5)
    • Android Studio at /opt/android-studio
    • Flutter plugin version 39.0.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[?] VS Code (version 1.38.0)
    • VS Code at /usr/share/code
    • Flutter extension version 3.3.0

[?] Connected device (1 available)
    • SM A600G • 5200e3e7f01e45f3 • android-arm • Android 9 (API 28)

• No issues found!
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?因为我需要先将它(发布 apk)安装到真实设备中,然后才能上传到 Play 商店。

Thu*_*pal 14

尝试

flutter build apk --no-shrink
Run Code Online (Sandbox Code Playgroud)

更新

flutter build apk --release --split-per-abi --no-shrink
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题


R R*_*ara -2

由于 proguard 等发布应用程序的安装项目而崩溃。