Grunt adbpush fails

1. What is the problem? Be very detailed.
I am familiarising myself wiht ODK-X following the documentation and examples online which are very helpful. I have enabled USB debugging on my device and enabled file transfer but grunt adbpush and grunt adbpush -f both fail to transfer the files to the device. I have given the error from grunt adbpush below. grunt adbpush -f gives the same errors but more verbose. I am clearly doing something worng but can't find anything in the documentation to show what I am doing wrong. Any help would be appreciated
2. What app or server are you using and on what device and operating system? Include version numbers.
Windows 10
Android v9
ODK Survey 2.1.2 rev 230
app-designer-2.1.2
3. What you have you tried to fix the problem?
Restarting the computer and device, transferring the example forms from app-designer
4. What steps can we take to reproduce the problem?
Does this work in similar setups
5. Anything else we should know or have? If you have a test form or screenshots or logs, attach below.
Output from the command line:
C:\Users\paul\Documents\Resources\app-designer-2.1.2\app-designer-2.1.2>grunt adbpush
detected Windows environment

Running "adbpull-props" task

Running "force:on" (force) task

Running "exec:adbpull:/sdcard/opendatakit/default/config/assets/app.properties:app/output/props/app.properties" (exec) task
adb: error: failed to get feature set: device still authorizing

Exited with code: 1.
Warning: Task "exec:adbpull:/sdcard/opendatakit/default/config/assets/app.properties:app/output/props/app.properties" failed. Used --force, continuing.

Running "exec:adbpull:/sdcard/opendatakit/default/data/device.properties:app/output/props/device.properties" (exec) task
adb: error: failed to get feature set: device still authorizing

Exited with code: 1.
Warning: Task "exec:adbpull:/sdcard/opendatakit/default/data/device.properties:app/output/props/device.properties" failed. Used --force, continuing.

Running "adbpull-fixprops" task
Warning: Unable to read "app/output/props/device.properties" file (Error code: ENOENT). Used --force, continuing.

Running "force:restore" (force) task

Running "remove-folders" task
Deleting /sdcard/opendatakit/default

Running "killall" task
Force stopping survey
Force stopping tables
Force stopping services

Running "exec:adbshell:am force-stop org.opendatakit.survey" (exec) task

error: device still authorizing
Exited with code: 1.
Warning: Task "exec:adbshell:am force-stop org.opendatakit.survey" failed. Use --force to continue.

Aborted due to warnings.

Execution Time (2019-05-31 13:41:32 UTC)
loading tasks 186ms ■■■■■■■■■■■■■■■■■■■■■■■■■ 48%
exec:adbpull:/sdcard/ope...ut/props/app.properties 57ms ■■■■■■■■ 15%
exec:adbpull:/sdcard/ope...props/device.properties 66ms ■■■■■■■■■ 17%
remove-folders 4ms ■ 1%
killall 6ms ■ 2%
exec:adbshell:am force-stop org.opendatakit.survey 63ms ■■■■■■■■■ 16%
Total 387ms

Welcome to the ODK forum, @Paul_Bessell! We're glad you're here. When you get a chance, please introduce yourself on this forum thread. I'd also encourage you to add a real picture as your avatar because it helps build community!

Thanks for the details on your error! So it looks like adbpush is failing because the device is not authorized. Please check if there is a pop up on your tablet asking to authorize the device (this is what the problem usually was for me). If that's not it, please make sure you are following these set up steps:
https://docs.opendatakit.org/odk-x/docs-syntax-guide/#screenshots-from-odk-collect

Let us know if that works!

1 Like

Thanks for your suggestions.

I have not been able to fix this using grunt adbpush. Instead I used Windows explorer to copy the contents of app-designer-2.1.2/app to SDCard/opendatakit/default and I can now interact with my forms and tables.

1 Like

As @elmps2018 pointed out it appears to be your device is not authorized. Devices can get into semi-error states especially when installing errors for the first time. To clear the authorizations so your device will prompt you to approve the ADB bridge again.

Goto "Settings" -> "Developer Options". 1) Make sure developer options are switched to on. 2) Make sure USB debugging is switched to on. 3) Click on "Revoke USB debugging authorizations"

Step 3 will reset the debugging authorization and you should be able to give authorization for your computer to attach via the Android Debug Bridge.

1 Like