Google Play Protect

What platform are you building for?

Android

What framework are you building with?

Cordova

What is your build ID?

7de5e952-ca3f-485d-8d8d-6d366d061da8

What is your error message?

No error message, bundle stalls and fails on first install.

Please describe the issue:

Hi Volt Team!

I have been seeing an error that has me puzzled. It’s not the traditional error but I was hoping someone from the team may be able to shed some light. I am able to consistently build package without error using Nimble Studio and Volt Builder. However when I install the package on the 1st attempt I see a Google Play Protect scan modal. It appears for a few seconds and then continues to install the apk. And then it just stalls…

It shows the “Installing…” message but never completes. - If I swipe up to cancel the install and try again, it works without the “Play Protect Scan” and completes perfectly.

Any help on this issue would be appreciated. I’m installing on a Galaxy Note 10, Android 12.

Thanks

Are you able to share your config.xml so we can take a look?

Sure.. It’s auto-generated for me.

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.nimblejs.calendar" version="1.1" xmlns:android="http://schemas.android.com/apk/res/android" xmlns="http://www.w3.org/ns/widgets">
    <name>Pro Scheduler</name>
    <description>Created with nimble-ide v5 for Javascript.</description>
    <author email="nimblejs@nimble-ide.com" href="https://www.nimble-ide.com">
Tyrone W. Lee
    </author>
    <content src="index.html" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="android-targetSdkVersion" value="34" />
	<preference name="AppendUserAgent" value="Nimble v5.0 (Mobile)" />
    <preference name="orientation" value="default" />
    <preference name="SplashScreenDelay" value="2000" />
    <preference name="AutoHideSplashScreen" value="true" />
    <preference name="permissions" value="none" />
    <preference name="StatusBarOverlaysWebView" value="false" />
    <preference name="StatusBarBackgroundColor" value="#000000" />
    <preference name="StatusBarStyle" value="lightcontent" />
	<engine name="android" spec="~13.0.0" />
	<platform name="electron">
		<engine name="electron" spec="~3.1.0" />
	</platform>
    <platform name="ios">
		<engine name="ios" spec="~8.0.0" />
        <preference name="WKWebViewOnly" value="true" />
            <feature name="CDVWKWebViewEngine">
                <param name="ios-package" value="CDVWKWebViewEngine" />
            </feature>
        <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
    </platform>
    <plugin name="cordova-plugin-android-permissions" source="npm" />
    <plugin name="cordova-plugin-battery-status" source="npm" />
    <plugin name="cordova-plugin-camera" source="npm" />
    <plugin name="cordova-plugin-media" source="npm" />
    <plugin name="cordova-plugin-device" source="npm" />
    <plugin name="cordova-plugin-screen-orientation" source="npm" />
    <plugin name="cordova-plugin-geolocation" source="npm" spec="~4.1.0" />
    <plugin name="cordova-plugin-globalization" source="npm" />
    <plugin name="cordova-plugin-vibration" source="npm" />
    <plugin name="cordova-plugin-network-information" source="npm" spec="~3.0.0" />
    <plugin name="cordova-plugin-file" source="npm" />
    <plugin name="cordova-plugin-image-resizer" source="npm" />
    <platform name="android">
      <allow-intent href="market:*" />
      <preference name="AndroidXEnabled" value="true" />
      <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/activity">
        <application android:exported="true" />
      </edit-config>
      <preference name="AndroidWindowSplashScreenAnimatedIcon" value="res/icon.png" />
      <preference name="AndroidWindowSplashScreenBackground" value="#000000" />
      <preference name="AndroidPersistentFileLocation" value="Compatibility" />
      <config-file target="AndroidManifest.xml" mode="merge" parent="/manifest">
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.VIBRATE" />
      </config-file>
    </platform>
    <icon src="res/icon.png" />
    <splash src="res/splash.png" />
	<access origin="http://www.nimble-ide.com" />
    <access origin="https://www.nimble-ide.com" />
	<allow-navigation href="http://www.nimble-ide.com/*" />
    <allow-navigation href="https://www.nimble-ide.com/*" />
	<allow-intent href="http://www.nimble-ide.com/*" />
    <allow-intent href="https://www.nimble-ide.com/*" />
    <access origin="*" />
    <allow-navigation href="http://*/*" />
    <allow-navigation href="https://*/*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
</widget>

Are you able to test with another device? That device is old and no longer receiving updates for the last 2 years. This may be a bug that’s been fixed on supported devices. We haven’t heard of those symptoms here.

You mention you’re installed an APK - so you are bypassing the play store?

I will try to test on another device. After the build completes, I just snapshot the QR code to install. It appears to be the “scan” that is stalling/failing. When the modal popup shows, you have like 3-5 seconds to stop the scan. If I click fast enough to stop the scan it works fine.

If I can’t click before the timeout, it starts the scan but never finishes and stalls out. Is there a way to increase the delay, or stop the Play Protect scan for this old device?

Unfortunately I can’t find any mention of this. Are you able to connect to the device with ADB and see logs? That might give you an idea of what’s going wrong.