Reputation: 1175
I have this very interesting issue, where I can run my application on the emulator just fine, flutter build apk
is successful, I can either release the new version on Google Play or just install the apk
on my phone (Pixel 2 XL, currently on April security patch).
But when I launch it on my phone, it instantly crashes. I haven't tried installing the debug apk
yet, first I want to apply the May patch.
I already tried upgrading flutter several times, but doesn't seem to be any issue there either:
C:\Android\osszefogasaszanhuzokert>flutter upgrade
Upgrading Flutter from c:\Android\flutter...
From https://github.com/flutter/flutter
3d3673a34..23098dde5 master -> origin/master
Already up to date.
Upgrading engine...
Already up-to-date.
Flutter 0.3.6-pre.81 • channel beta • https://github.com/flutter/flutter.git
Framework • revision 2849bc04ff (10 days ago) • 2018-05-01 20:07:45 -0700
Engine • revision d5c1117170
Tools • Dart 2.0.0-dev.52.0.flutter-011676641a
Running "flutter packages upgrade" in osszefogasaszanhuzokert... 14.4s
Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.3.6-pre.81, on Microsoft Windows [Version 10.0.15063], locale en-GB)
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[√] Android Studio (version 3.1)
[√] Connected devices (1 available)
• No issues found!
I recently switched laptops and checked out the git repository of my code on this new one. There were some problems, but I eventually fixed those. The only difference is that that the project name now is simply osszefogasaszanhuzokert
, while the package name is osszefogasaszanhuzokert2
- but I don't think this should cause any problem.
My guess is that the problem will lie somewhere in my AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zgyorkei.osszefogasaszanhuzokert2">
<!-- The INTERNET permission is required for development. Specifically,
flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<!-- 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. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="Összefogás A Szánhúzókért"
android:icon="@mipmap/ic_launcher">
<activity
android:name="com.zgyorkei.osszefogasaszanhuzokert2.MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale"
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>
Android studio marks several attributes as not allowed, but as you can see I pretty much left everything as default - except I changed the android:label
for obvious reasons.
EDIT: I installed the debug apk and it runs perfectly. However, I was able to get adb logcat of the crash of the release apk, and the problem seems to be the following:
05-12 07:38:23.341 29595 29595 I crash_dump32: performing dump of process 29560 (target tid = 29560)
05-12 07:38:23.341 29595 29595 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-12 07:38:23.341 29595 29595 F DEBUG : Build fingerprint: 'google/taimen/taimen:8.1.0/OPM2.171019.029.B1/4720900:user/release-keys'
05-12 07:38:23.341 29595 29595 F DEBUG : Revision: 'rev_10'
05-12 07:38:23.341 29595 29595 F DEBUG : ABI: 'arm'
05-12 07:38:23.341 29595 29595 F DEBUG : pid: 29560, tid: 29560, name: saszanhuzokert2 >>> com.zgyorkei.osszefogasaszanhuzokert2 <<<
05-12 07:38:23.342 29595 29595 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
05-12 07:38:23.343 29595 29595 F DEBUG : Abort message: '[FATAL:flutter/runtime/dart_vm.cc(409)] Error while initializing the Dart VM: Snapshot not compatible with the current VM configuration: the snapshot requires 'product no-type_checks no-asserts no-error_on_bad_type no-error_on_bad_override arm-eabi hardfp' but the VM has 'product no-type_checks no-asserts no-error_on_bad_type no-error_on_bad_override arm-eabi softfp'
How could I change the Dart VM
to use hardfp
instead of softfp
?
Upvotes: 55
Views: 100696
Reputation: 39
I was facing this issue, in vs code it kept installing forever. Meanwhile the app appeared on emulator but crashes as soon as i tried to opened it.
Turned out the package name in MainActivity.kt was not the same as my application id.
Ensure the applicaiton id is same in andorid/app/build.gradle and Android/app/src/main/kotlin/MainActivity.tk
Upvotes: 3
Reputation: 71
If you have changed your application name later, MainActivity.kt cannot do this automatically. This creates a problem in the starting
Please change the Package name with the new one in MainActivity.Kt
Upvotes: 0
Reputation: 923
The reason it was crashing for me was because of a third-party library on startup. To check which library is causing the crash, look at the logs using Logcat by going to View > Tool Windows > Logcat
on Android Studio. Then, restart the app and inspect the output. For me, it was Firebase Auth library which was causing the crash. I just updated that library to solve my problem. I hope this helps someone. If not, "Stay calm, keep reading, and you will find it eventually".
Upvotes: 4
Reputation: 1389
The problem I faced was due to "firebase_crashlytics" not being installed correctly.
Basically the entries in [project]/android/build.gradle
and [project]/android/build.gradle
were not updated correctly in my case which simply crashed the app without any details in any of the logs.
Then I redid all the steps in "ReadMe" section of the plugin and it worked fine.
https://pub.dev/packages/firebase_crashlytics
Basically, when you face app crash error without any logs to help you, ensure you check your newly added plugins and that you have installed them correctly.
Upvotes: 0
Reputation: 171
In android\build.gradle
classpath 'com.android.tools.build:gradle:3.5.0'
In combination with the new released Gradle 6.6
, so at gradle\wrapper\gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-all.zip
Upvotes: 1
Reputation: 943
In my case, I only had to run:
flutter build apk --release --no-shrink
Upvotes: 4
Reputation: 3733
From here: https://stackoverflow.com/a/69234372/487812
This is an issue with latest Flutter version , I fixed it with the below eidt ,
This is a workaround and it works for me .
- go to
MainActivity.kt
- Import
import android.os.Build
- Paste this
override fun onFlutterUiDisplayed() { if (Build.VERSION.SDK_INT >= 100) { //I gave 100 just to confirm , it shoud be android ver 10 reportFullyDrawn(); } }
flutter clean
flutter run
Upvotes: 0
Reputation: 3758
I had the same issue. For me this happened after I renamed my app and changed the package name. I did not do this properly for android.
After following this guide of how to change the package name, things worked fine for android.
Make sure the package name in AndroidManifest.xml
and android/app/build.gradle
and android/app/src/.../MainActivity.java
is the same. Also check ios/Runner/Info.plist
the value of CFBundleName
for iOS versions.
Upvotes: 99
Reputation: 1
Open android studio, get SHA keys from gradle and update the key in google console, upload your google JSON list in your project, make sure your SHA key should be unique one, using below command you get folder:
Google SHA
keytool -exportcert -list -v -alias foldername -keystore /directory
Upvotes: 0
Reputation: 441
In my case, the issue was that I was using Android studio version 3.6.1 with gradle-wrapper.properties distribution version 6.0.0-all. To resolve this, I have changed it to 4.10.1-all .
Upvotes: 0
Reputation: 1183
I had the same problem and none of the options here helped me. Finally, I found about logcat
and realised my app was crashing because of Crashlytics package.
In short, I ran the below command in terminal to show logs from the device which helped me not only find the culprit but how to resolve the issue. You can leave it running in background.
adb logcat
You might have to add below path to you path
environment variables. Or just cd
to it.
C:\Users\[USERNAME]\AppData\Local\Android\sdk\platform-tools
See the output below. I am sure if this happens again because of whatever reason, I should be able to figure out why instead of speculating what caused it.
Upvotes: 8
Reputation: 7385
As Morad mentioned, not referencing AdMob correctly will cause your app to crash on launch and may not even give a clue about the crash. This is true for both iOS and Android.
Android - within AndroidManifest.xml
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="your-app-id"/>
iOS - within Info.plist
<key>GADApplicationIdentifier</key>
<string>your-app-id</string>
Follow the instructions here: https://pub.dev/packages/firebase_admob
If you don't know your App ID, you can find it at https://admob.google.com and on the left click "Apps" and then "View All Apps" (as long as you set up your ads already).
Upvotes: 0
Reputation: 2779
For me it was because I used admob and forgot to add the APPLICATION_ID
to AndroidManifest.xml
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="app-id"/>
Upvotes: 3
Reputation: 21
While working on flutter at android studio : I had the same issue , but finally I concluded that when you add new dependency on the file called pubspec.yaml located at your app "root directory" and that dependency is not configured in the correct way such as {{flutter_facebook_login: ^1.2.0}} so if you need it so configure it at the right way or do not use it at all. ^_^ Have a good day at android studio
Upvotes: 2
Reputation: 10879
After a day I resolved, no advice above was helpful because I had already tried them all. Among which :
In my case the solution when i upgrade flutter has been this:
classpath 'com.android.tools.build:gradle:3.3.1'
to
classpath 'com.android.tools.build:gradle:3.3.2'
That's right, it was enough to update the tools gradle. Infact the project compiled without errors and started the app. But when the app started it closed by itself without any error message. So be careful of the gradle. I hope with this you will save hours of stress.
Upvotes: 1
Reputation: 1452
This is not direct answer to this question but I had similar problem and end up here. Others can come too.
MY PROBLEM: app crashes on first launch on emulator
MY SOLUTION: clear cache by running flutter clean
Upvotes: 34
Reputation: 1898
For those who've done a refactor/changed package name using Kotlin and none of the above worked (my case), check this: make sure that in your app/src/main directory there is a MainActivity
file in BOTH the app/src/main/java and the app/src/main/kotlin directories. For me, there was no file in the java folder and this caused the crash (and of course make sure you've done all the above as well).
Upvotes: 1
Reputation: 1811
Simplest way to solve this error
This error happens when you change your package name
In order to change your package name in a proper way you have to follow below steps
By following below steps you can solve this error
step-1:-
1.GO TO :---
project>[your_app_name]>Android [your_app_name]>app>src
In src folder you can find 3 files Debug,main & profile
go to each file separately and change package name of their AndroidManifest.xml files
Now,you are half away from solving this error.
Step-2:-
Now , go to build.gradle file located in
project>[your_app_name]>Android [your_app_name]>app>build.gradle
here you can find this code defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.appname"
minSdkVersion 16
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
just change package name com.example.appname
to your suitable package name
Step-3:-
Now go to
project>[your_app_name]>Android [your_app_name]>app>src>main>java>mainactivity
***Caution****** if you are using Kotlin with flutter then you have to go here:--
project>[your_app_name]>Android [your_app_name]>app>src>main>kotlin>mainactivity
You can change the package name of your app After going to Mainactivity.kotlin or mainactivity.java
It should work perfectly...Please provide feedback to this.
ALSO DON'T FORGET TO CHANGE PACKAGE NAME OF THE FOLDER [Go to src>main>kotlin or java>com.example.app]
Upvotes: 26
Reputation: 4545
I faced the same behavior (the app just closes on launch without any errors or warning, etc) and resolved it by using command:
flutter clean
That's happened to me when I haven't relaunch the app on the simulator for a while (a few months). And I guess related to some Flutter updates / etc.
Upvotes: 3
Reputation: 2968
Had the same issue with some phones with different architecture. The app started crashing when I open it. Here is a fix that worked for me:
defaultConfig {
...
multiDexEnabled true
ndk {
abiFilters 'x86', 'armeabi-v7a'
}
}
Had to add ndk
in android/app/build.gradle
file and it worked like a charm.
I hope this can help someone.
Upvotes: 11
Reputation: 31
Here is the solution:
In the file build.gradle are the follow:
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.debug
// colocado isso para release
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
just change minifyEnabled and useProguard to false and run flutter build again.
Upvotes: 3
Reputation: 5361
I was facing same issue after flutter upgrade.
In my app, multiDexEnabled true
was enabled in build.gradle
file and it was working fine before the upgrade.
I had added it earlier to fix another crash.
See this for the same: Flutter android app crashes upon startup if I include a certain package
Upvotes: 1