Reputation: 2128
I already set up for build app release like pro-guard, icon, manifest etc without flavor
. I migrated dir /android
to AndroidX
because if not, failed to build app release when run flutter build apk
. So I migrate it and success. Like below:
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).
Then after success, I install it with two ways:
Using flutter install
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
Using manual, go to that dir, and install it.
I already try flutter build apk --split-per-abi
then like above I install it with two ways too. But still crashing when I open the app before showing the splash screen. This is the manifest for release apps in 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>
And this is the output of 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!
Can someone help me? Because I need to install it (release apk) first into real device before I upload to Play Store.
Upvotes: 6
Views: 19013
Reputation: 1
in my case on release mode apk app crashed issue fix when i was put below code into my build.gradle file
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Upvotes: 0
Reputation: 1482
For me it was the gradle version. I changed
classpath 'com.android.tools.build:gradle:4.1.1'
to
classpath 'com.android.tools.build:gradle:3.5.0'
in android/build.gradle
.
Upvotes: 1
Reputation: 1546
Try
flutter build apk --no-shrink
Update
flutter build apk --release --split-per-abi --no-shrink
This solved my problem
Upvotes: 21
Reputation: 6059
If you generated your release build and it is crashing when you install the apk on your Android Device, make sure you followed instructions properly as mentioned in https://flutter.dev/docs/deployment/android.
This involves, making the required changes in the app/build.gradle
Adding key.properties
file
and then finally generating your release apk.
Upvotes: 1
Reputation: 2128
This is crashed because of setup project for release app like proguard etc.
Upvotes: -2