Hi,
I am trying to distribute my app on Google Play. Its a detached app. I used Android Studio to generate the signed apk. But when I open the app from the store it says “Could not load app.”
I also tried:
./gradlew assembleRelease
I followed:
I installed the apk to test locally with the same “Could not load app.”
./adb install ~/workspace/github/underwriter-bot-mobile/android/app/build/outputs/apk/app-prod-release.apk
Expo SDK 26.
build.gradle
compileSdkVersion 26
buildToolsVersion '26.0.1'
defaultConfig {
targetSdkVersion 25
Issue:
It works on dev mode.
Here is the adb log:
PowerSaverService: current package:com.flyreel.underwriterbot;activity:host.exp.exponent.MainActivity
05-16 13:17:58.523 2177 2177 D PowerSaverUtils: isLimitedCpuFrequency prop : 0 ; result : false
05-16 13:17:58.526 1412 1675 I qti_sensors_hal: LIGHT processReportInd: 6eeef 6.933334
05-16 13:17:58.536 2177 2218 I AppOpsStatusUpdateHandler: pkgName = com.flyreel.underwriterbot
05-16 13:17:58.536 2177 2218 I AppOpsStatusUpdateHandler: taskId = 6634
05-16 13:17:58.536 2177 2218 D CNAppLockHandler: CNAppLockHandler handleAppFocus
05-16 13:17:58.554 521 665 E libnav : CablComputeBacklightLevel(): UpdateType = DifferentSceneUpdate
05-16 13:17:58.556 1883 1897 I art : Background partial concurrent mark sweep GC freed 54571(2MB) AllocSpace objects, 0(0B) LOS objects, 30% free, 36MB/52MB, paused 542us total 101.075ms
05-16 13:17:58.678 1412 3307 I ActivityManager: START u0 {flg=0x24000000 cmp=com.flyreel.underwriterbot/host.exp.exponent.experience.ErrorActivity (has extras)} from uid 10166 on display 0
05-16 13:17:58.682 1412 3307 I InputDispatcher: Window 'Window{2877139 u0 com.flyreel.underwriterbot/host.exp.exponent.MainActivity}' spent 0.0ms processing input events on average(0/0). Monitor spent 0.0ms processing input events on average(0/0). Window input events down spent 0.0ms on average (0/0). Window input events up spent 0.0ms on average (0/0). Monitor input events down spent 0.0ms on average (0/0). Monitor input events up spent 0.0ms on average (0/0).
05-16 13:17:58.683 1412 3307 D ActivityTrigger: ActivityTrigger activityPauseTrigger
05-16 13:17:58.696 29882 30164 V FA : Screen exposed for less than 1000 ms. Event not sent. time: 314
05-16 13:17:58.699 29882 30164 V FA : Activity paused, time: 12924655
05-16 13:17:58.702 1412 2631 D ActivityManager: [MemInfo] Process already exists before starting ActivityRecord{7e4e7f5 u0 com.flyreel.underwriterbot/host.exp.exponent.experience.ErrorActivity t6634}. System free memory=1250775040
05-16 13:17:58.702 1412 2631 D WindowManager: adjustConfigurationLw, config:{0 1.0 302mcc490mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/v s.10} mLidState:-1 mHasDockFeature:false mHasKeyboardFeature:false mHasHallSensorFeature:false config.hardKeyboardHidden:2
05-16 13:17:58.718 29882 29882 V Monotype: SetAppTypeFace- try to flip, app = com.flyreel.underwriterbot
05-16 13:17:58.718 29882 29882 V Monotype: Typeface getFontPathFlipFont - systemFont = default#default
05-16 13:17:58.718 29882 29882 V FA : onActivityCreated
05-16 13:17:58.726 1883 2244 V ReflectionMethods: ========ReflectionMethods.getAsusLevel = 4 ========
05-16 13:17:58.727 1883 2244 D NetworkController.MobileSignalController(1): onSignalStrengthsChanged signalStrength=SignalStrength: 99 0 -120 -160 -120 -1 -1 16 -108 -9 94 2147483647 2147483647 gsm|lte not wcdma level=4
05-16 13:17:58.727 1883 2244 D NetworkController.MobileSignalController(1): updateTelephonySignalStrength: hasService=true ss=SignalStrength: 99 0 -120 -160 -120 -1 -1 16 -108 -9 94 2147483647 2147483647 gsm|lte not wcdma
05-16 13:17:58.728 2096 3441 D PhoneInterfaceManager: isWifiCallingAvailable: sub Id : 1
05-16 13:17:58.728 1883 2244 D NetworkController.MobileSignalController(1): isWifiCallingAvailable=false
05-16 13:17:58.732 29882 29882 E ErrorActivity: ErrorActivity message: Could not load app.
05-16 13:17:58.733 2096 3440 D PhoneInterfaceManager: isVolteAvailable: sub Id : 1
05-16 13:17:58.733 1883 2244 V ReflectionMethods: ========ReflectionMethods.getVolteAvailable = false ===============
05-16 13:17:58.737 1412 1675 I qti_sensors_hal: LIGHT processReportInd: 6eeef 6.933334
05-16 13:17:58.738 29882 30164 V FA : Activity resumed, time: 12924696
05-16 13:17:58.740 2096 2331 D PhoneInterfaceManager: isVideoTelephonyAvailable: sub Id : 1
05-16 13:17:58.741 1883 2244 V ReflectionMethods: ========ReflectionMethods.getVideoTelephonyAvailable = false ===============
I also saw this note:
Note: Make sure gradle.properties does not include org.gradle.configureondemand=true as that will make release build skip bundling JS and assets into the APK.
so I removed this from gradle.properties
:
org.gradle.configureondemand=false
My EXSehll.plst
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>isManifestVerificationBypassed</key>
<true/>
<key>isShell</key>
<true/>
<key>isSplashScreenDisabled</key>
<true/>
<key>manifestUrl</key>
<string>exp://exp.host/@flyreel/flyreel</string>
<key>releaseChannel</key>
<string>default</string>
</dict>
</plist>