Android not working in release mode
Hi,
I'm facing a problem with Android part in release mode. When using flutter run everything works fine on simulators. When I build it for release then it doesn't. Depending on the version it either crashes or goes into infinite loading of intercom messenger.
I tried adding:
-keep class io.intercom.android.** { *; } but didn't help.
The logcat error I get:
2025-02-25 16:40:13.208 5540-5540 Intercom realtime com.watergate.app W No realtime endpoints present so we can't connect 2025-02-25 16:40:21.480 5540-5540 flutter com.watergate.app I Start sending token to Intercom 2025-02-25 16:40:21.492 1752-3005 ActivityTaskManager system_server I START u0 {flg=0x10000000 cmp=com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity (has extras)} with LAUNCH_MULTIPLE from uid 10475 (BAL_ALLOW_VISIBLE_WINDOW) result code=0 2025-02-25 16:40:21.492 2502-2552 WindowManagerShell com.android.systemui V Transition requested (#5400): android.os.BinderProxy@4fc7efc TransitionRequestInfo { type = OPEN, triggerTask = TaskInfo{userId=0 taskId=13223 effectiveUid=10475 displayId=0 isRunning=true baseIntent=Intent { flg=0x10000000 cmp=com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity } baseActivity=ComponentInfo{com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity} topActivity=ComponentInfo{com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity} origActivity=null realActivity=ComponentInfo{com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity} numActivities=1 lastActiveTime=848043877 supportsMultiWindow=true resizeMode=1 isResizeable=true minWidth=-1 minHeight=-1 defaultMinSize=220 token=WCT{android.window.IWindowContainerToken$Stub$Proxy@11b0985} topActivityType=1 pictureInPictureParams=null shouldDockBigOverlays=false launchIntoPipHostTaskId=-1 lastParentTaskIdBeforePip=-1 displayCutoutSafeInsets=Rect(0, 132 - 0, 0) topActivityInfo=ActivityInfo{747c3da io.intercom.android.sdk.m5.IntercomRootActivity} launchCookies=[] positionInParent=Point(0, 0) parentTaskId=-1 isFocused=false isVisible=false isVisibleRequested=false isSleeping=false locusId=null displayAreaFeatureId=1 isTopActivityTransparent=true isTopActivityStyleFloating=false lastNonFullscreenBounds=Rect(268, 663 - 812, 1743) capturedLink=null capturedLinkTimestamp=0 appCompatTaskInfo=AppCompatTaskInfo { topActivityInSizeCompat=false eligibleForLetterboxEducation= false isLetterboxEducationEnabled= false isLetterboxDoubleTapEnabled= false eligibleForUserAspectRatioButton= false topActivityBoundsLetterboxed= false isFromLetterboxDoubleTap= false topActivityLetterboxVerticalPosition= -1 topActivityLetterboxHorizontalPosition= -1 topActivityLetterboxWidth=1080 topActivityLetterboxHeight=2400 topActivityLetterboxAppWidth=1080 topActivityLetterboxAppHeight=2400 isUserFullscreenOverrideEnabled=false isSystemFullscreenOverrideEnabled=false hasMinAspectRatioOverride=false cameraCompatTaskInfo=CameraCompatTaskInfo { freeformCameraCompatMode=inactive}}}, pipTask = null, remoteTransition = null, displayChange = null, flags = 0, debugId = 5400 } 2025-02-25 16:40:21.559 1752-3005 CoreBackPreview system_server D Window{e598278 u0 com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity}: Setting back callback OnBackInvokedCallbackInfo{mCallback=android.window.IOnBackInvokedCallback$Stub$Proxy@9bb5589, mPriority=0, mIsAnimationCallback=false} 2025-02-25 16:40:21.592 1752-1810 ActivityTaskManager system_server I Displayed com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity for user 0: +108ms 2025-02-25 16:40:21.592 1752-1810 WindowManager system_server V Sent Transition (#5400) createdAt=02-25 16:40:21.484 via request=TransitionRequestInfo { type = OPEN, triggerTask = TaskInfo{userId=0 taskId=13223 effectiveUid=10475 displayId=0 isRunning=true baseIntent=Intent { flg=0x10000000 cmp=com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity } baseActivity=ComponentInfo{com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity} topActivity=ComponentInfo{com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity} origActivity=null realActivity=ComponentInfo{com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity} numActivities=1 lastActiveTime=848043877 supportsMultiWindow=true resizeMode=1 isResizeable=true minWidth=-1 minHeight=-1 defaultMinSize=220 token=WCT{RemoteToken{2a785b5 Task{a9a598c #13223 type=standard A=10475:com.watergate.app isResizeable=true minWidth=-1 minHeight=-1}}} topActivityType=1 pictureInPictureParams=null shouldDockBigOverlays=false launchIntoPipHostTaskId=-1 lastParentTaskIdBeforePip=-1 displayCutoutSafeInsets=Rect(0, 132 - 0, 0) topActivityInfo=ActivityInfo{b0f444a io.intercom.android.sdk.m5.IntercomRootActivity} launchCookies=[] positionInParent=Point(0, 0) parentTaskId=-1 isFocused=false isVisible=false isVisibleRequested=false isSleeping=false locusId=null displayAreaFeatureId=1 isTopActivityTransparent=true isTopActivityStyleFloating=false lastNonFullscreenBounds=Rect(268, 663 - 812, 1743) capturedLink=null capturedLinkTimestamp=0 appCompatTaskInfo=AppCompatTaskInfo { topActivityInSizeCompat=false eligibleForLetterboxEducation= false isLetterboxEducationEnabled= false isLetterboxDoubleTapEnabled= false eligibleForUserAspectRatioButton= false topActivityBoundsLetterboxed= false isFromLetterboxDoubleTap= false topActivityLetterboxVerticalPosition= -1 topActivityLetterboxHorizontalPosition= -1 topActivityLetterboxWidth=1080 topActivityLetterboxHeight=2400 topActivityLetterboxAppWidth=1080 topActivityLetterboxAppHeight=2400 isUserFullscreenOverrideEnabled=false isSystemFullscreenOverrideEnabled=false hasMinAspectRatioOverride=false cameraCompatTaskInfo=CameraCompatTaskInfo { freeformCameraCompatMode=inactive}}}, pipTask = null, remoteTransition = null, displayChange = null, flags = 0, debugId = 5400 } 2025-02-25 16:40:23.111 5540-5540 AndroidRuntime com.watergate.app E FATAL EXCEPTION: main Process: com.watergate.app, PID: 5540 java.lang.NullPointerException at a6.d4.a(SourceFile:131) at io.intercom.android.sdk.m5.components.HomeItemKt.HomeItem(SourceFile:916) at io.intercom.android.sdk.m5.home.ui.components.SpacesCardKt$SpacesCard$1.invoke(SourceFile:53) at io.intercom.android.sdk.m5.home.ui.components.SpacesCardKt$SpacesCard$1.invoke(SourceFile:1) at C0.d.d(SourceFile:46) at C0.d.invoke(SourceFile:10) at r0.o.invoke(SourceFile:254) at C0.d.invoke(SourceFile:7) at r0.z2.invoke(SourceFile:164) at C0.d.invoke(SourceFile:7) at u0.d.b(SourceFile:152) at r0.B2.a(SourceFile:138) at r0.N1.c(SourceFile:280) at io.intercom.android.sdk.ui.component.IntercomCardKt.IntercomCard(SourceFile:18) at io.intercom.android.sdk.m5.home.ui.components.SpacesCardKt.SpacesCard(SourceFile:78) at io.intercom.android.sdk.m5.home.ui.HomeContentScreenKt.HomeContentScreen(SourceFile:356) at io.intercom.android.sdk.m5.home.ui.HomeScreenKt$HomeScreen$2$2$2.invoke(SourceFile:43) at io.intercom.android.sdk.m5.home.ui.HomeScreenKt$HomeScreen$2$2$2.invoke(SourceFile:1) at C0.d.d(SourceFile:46) at C0.d.invoke(SourceFile:10) at androidx.compose.animation.a.a(SourceFile:1455) at S.t.invoke(SourceFile:31) at u0.p.C(SourceFile:451) at u0.p.L(SourceFile:29) at androidx.compose.animation.a.f(SourceFile:141) at androidx.compose.animation.a.d(SourceFile:253) at io.intercom.android.sdk.m5.home.ui.HomeScreenKt$HomeScreen$2.invoke(SourceFile:47) at io.intercom.android.sdk.m5.home.ui.HomeScreenKt$HomeScreen$2.invoke(SourceFile:1) at C0.d.d(SourceFile:46) at C0.a.invoke(SourceFile:422) at u0.p.C(SourceFile:451) at u0.p.J(SourceFile:137) at u0.p.n(SourceFile:238) at u0.p.B(SourceFile:30) at u0.t.t(SourceFile:23) at u0.w0.p(SourceFile:103) at u0.u0.invoke(SourceFile:564) at f1.d0.doFrame(SourceFile:34) at f1.b0.doFrame(SourceFile:48) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1413) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1424) at android.view.Choreographer.doCallbacks(Choreographer.java:1024) at android.view.Choreographer.doFrame(Choreographer.java:949) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1398) at android.os.Handler.handleCallback(Handler.java:991) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app.ActivityThread.main(ActivityThread.java:8787) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:871) Suppressed: oa.g: [f1.e0@837cad9, f1.C0@c65ac9e, x0{Cancelling}@216d37f, c0@b62ef4c] 2025-02-25 16:40:23.115 1752-2619 ActivityTaskManager system_server W Force finishing activity com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity 2025-02-25 16:40:23.253 1752-2207 WindowManager system_server I WIN DEATH: Window{e598278 u0 com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity} 2025-02-25 16:40:23.557 1752-4767 WindowManager system_server W Exception thrown during dispatchAppVisibility Window{e598278 u0 com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity EXITING} android.os.DeadObjectException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(BinderProxy.java:586) at android.view.IWindow$Stub$Proxy.dispatchAppVisibility(IWindow.java:553) at com.android.server.wm.WindowState.sendAppVisibilityToClients(WindowState.java:3287) at com.android.server.wm.WindowContainer.sendAppVisibilityToClients(WindowContainer.java:1287) at com.android.server.wm.WindowToken.setClientVisible(WindowToken.java:403) at com.android.server.wm.ActivityRecord.setClientVisible(ActivityRecord.java:7053) at com.android.server.wm.ActivityRecord.postApplyAnimation(ActivityRecord.java:5747) at com.android.server.wm.ActivityRecord.commitVisibility(ActivityRecord.java:5690) at com.android.server.wm.Transition.finishTransition(Transition.java:1334) at com.android.server.wm.TransitionController.finishTransition(TransitionController.java:945) at com.android.server.wm.WindowOrganizerController.finishTransition(WindowOrganizerController.java:521) at android.window.IWindowOrganizerController$Stub.onTransact(IWindowOrganizerController.java:289) at com.android.server.wm.WindowOrganizerController.onTransact(WindowOrganizerController.java:210) at android.os.Binder.execTransactInternal(Binder.java:1396) at android.os.Binder.execTransact(Binder.java:1335) 2025-02-25 16:40:23.617 1752-1818 ActivityTaskManager system_server W Activity top resumed state loss timeout for ActivityRecord{9bc7ebf u0 com.watergate.app/io.intercom.android.sdk.m5.IntercomRootActivity t-1 f}}
flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.29.0, on macOS 15.1 24B83 darwin-arm64, locale en-PL) [✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 16.2) [✓] Chrome - develop for the web [✓] Android Studio (version 2024.2)
@pelkamarcin Which intercom_flutter version you are using?
@pelkamarcin Which
intercom_flutterversion you are using?
I tried 9.2.7, 9.2.6, 9.2.5 and some older. Also, I tried to downgrade flutter to 3.27.4 but didn't help either.
i am facing same issue in release mode if i open intercom chat it is freeze my app and not responding in debug mode it is working fine
i have also added proguard rules
-keep class io.intercom.android.** { ; } -keep class com.intercom.* { *; }
intercom_flutter: 9.2.5
Flutter version 3.22.3 Dart version 3.4.4
i fix my issue with add this into android/gradle.properties now intercom works fine in release mode
android.enableR8.fullMode=false
or you can add -keep class org.xmlpull.v1.** { *; } into your proguard file
i fix my issue with add this into android/gradle.properties now intercom works fine in release mode
android.enableR8.fullMode=falseor you can add
-keep class org.xmlpull.v1.** { *; }into your proguard file
nice thanks! I tried the second option and it did work. Any idea what is causing it?