cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Want to learn some quick and useful tips to make your day easier? Check out how Calvin uses Replay to get feedback from other teams at Dropbox here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: Sign in does not work on Android OS 5.1 without Google API support

Sign in does not work on Android OS 5.1 without Google API support

SIGMA_DE
Explorer | Level 3
Go to solution

We develop an Android application with Dropbox integration on a dedicated Android device, which is running on a 5.1 Stock Android OS without Google API support.
We already implemented a solution to support the Dropbox authentication (and the file upload) via Android Webview, but we realized that the sign in process isn't working since ~September (we supposed there was some modification on the login page and that causes the problem).
When we push the login button an error message appears: "There was a problem completing this request".
We read on this forum that the authentication with an embedded browser is not recommended, so we modified our Dropbox integration to use your java SDK v2, but the login  process still runs into an error - the Sign in button seems to be inactive and nothing happens when trying to click.
We think the issue is related to the Google api support. In the android ADV Manager we can build an emulator with and without Google api. In the first case your Android example app works properly (and our solution also), but in the second case the problem occurs on the emulator as well (and therefore it is easy to reproduce the problem).
Do you have any suggestion? Isn't there any solution which does not require Google API support?

1 Accepted Solution

Accepted Solutions

Greg-DB
Dropbox Staff
Go to solution

Thanks for the additional information. 

 

If you use the official Dropbox API v2 Java SDK as provided, it should automatically send the app authorization flow through the system browser, not a webview.

 

It sounds like you're still using a webview in this case though, even with the SDK. Please note that, regardless of system version or SDK, you should not use a webview for the Dropbox app authorization flow, per our /oauth2/authorize documentation

As for the issue, it sounds like it's because the webview is using an old browser engine, e.g., an old version of Webkit. Unfortunately that is not officially supported by the Dropbox web site

Old browsers/engines like this are not officially supported by Dropbox and so may be prone to issues as the Dropbox web site is updated. (This is one of the reasons for our policy prohibiting webviews; we've found webviews are more prone to compatibility issues like this.) For example, it's likely that there's some JavaScript error or incompatibility when attempting to access the Dropbox web site form in this webview, causing the sign in form to fail, as you're seeing. 

Since that isn't supported, I'm afraid we can't offer fixes for issues like this. I recommend you instead switch to a supported system browser to resolve this. I can't speak to whether or not updating the system browser itself would also update the webview, but regardless, the correct solution is to use a supported system browser directly.

View solution in original post

3 Replies 3

Greg-DB
Dropbox Staff
Go to solution

In the case where you're using the official Dropbox API v2 Java SDK on an emulator without Google API support, can you elaborate on where you're processing the app authorization flow? If the official Dropbox Android app itself isn't installed, it should be processed through the system browser. In that case, can you also share the exact name and version number of the browser where you see this issue? Thanks in advance! 

SIGMA_DE
Explorer | Level 3
Go to solution

Hi Greg,

 

Thanks for fast reply.

 

We use the Android Webview authentification, which worked without any issue until ~September. 

Our solution is based on:

- Android 5.1

- Browser Version: 5.1 - 1601629315

- Android System WebView: Version 29 (1601629315-arm)

 

We did some further testing with an Android 6 emulator, which worked again without any issue. 

 

Our guess is, that we could update the Browser (and System WebView) to solve the issue. 

 

We would like to double check with you, if this is the correct solution or if you would recommend another solution.

 

Thanks in advance. 

Greg-DB
Dropbox Staff
Go to solution

Thanks for the additional information. 

 

If you use the official Dropbox API v2 Java SDK as provided, it should automatically send the app authorization flow through the system browser, not a webview.

 

It sounds like you're still using a webview in this case though, even with the SDK. Please note that, regardless of system version or SDK, you should not use a webview for the Dropbox app authorization flow, per our /oauth2/authorize documentation

As for the issue, it sounds like it's because the webview is using an old browser engine, e.g., an old version of Webkit. Unfortunately that is not officially supported by the Dropbox web site

Old browsers/engines like this are not officially supported by Dropbox and so may be prone to issues as the Dropbox web site is updated. (This is one of the reasons for our policy prohibiting webviews; we've found webviews are more prone to compatibility issues like this.) For example, it's likely that there's some JavaScript error or incompatibility when attempting to access the Dropbox web site form in this webview, causing the sign in form to fail, as you're seeing. 

Since that isn't supported, I'm afraid we can't offer fixes for issues like this. I recommend you instead switch to a supported system browser to resolve this. I can't speak to whether or not updating the system browser itself would also update the webview, but regardless, the correct solution is to use a supported system browser directly.

Need more support?