I\'m migrating my app from deprecated Google Drive Android API to Drive Rest API. I implemented required behavior using new packages and everything works fine in emulator -
Funny, I've been dealing with this the past so many days and waiting 24 hours to see if something fixed it. Its a really crappy problem.
PRIMARY ANSWER
I have a feeling you're using ProGuard same as I am assuming by "real device" that you're building signed apk as you do not specify if you're using signed or debug apk. ProGuard can cause this error to happen. I fixed it using the following.
# Fix OAuth Drive API failure for release builds
-keep class * extends com.google.api.client.json.GenericJson { *; }
-keep class com.google.api.services.drive.** { *; }
-keepclassmembers class * { @com.google.api.client.util.Key <fields>; }
SECONDARY ANSWER
Note that you DO NOT need to use keys/tokens using the Drive rest API with Android like you may find from other solutions (it may not hurt either, but it can). It doesn't match up here to what people talk about elsewhere (here they don't know what they're talking about).
See my notes here for further info: Google Drive via OAuth release version receives dailyLimitExceededUnreg
IF you have the problem however in debug build then you did not do everything correctly. My notes should get you on the right track.
If you need further help, I might assist because of how nuts it is.