You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

swright1512's avatar
swright1512
Explorer | Level 3
5 years ago

okhttp not found, migrating to Android developer studio (gradle)

I have an application that i have not needed to update since moving to API v2 in 2017.  Due to google enforcing a minimum targetSDK i have made modifications and the project now meets the target and is backward compatible to API 8 in eclipse.

 

I am trying now to migrate the eclipse project over to ADS. I have to admit that I have no prior experience until the last few days of ADS and gradle, so please be gentle!

 

 

when i build my app i am getting the following error

 

 

cannot access OkHttpClient class file for com.squareup.okhttp.OkHttpClient not found

 

 

C:\test\testproject\src\main\java\com\dropbox\core\examples\android\PicassoClient.java:19: error: cannot access OkHttpClient
                .downloader(new OkHttpDownloader(context))

 

i have the .jar file for okhttp in libs folder (same files that build ok with eclipse).

 

i have tried adding dependency so gradle downloads but it fails to find it.

 

implementation 'com.squareup.okhttp3:3.8.1'

and

implementation 'com.squareup.okhttp3:3.0.1'

 

Any help would be appreciated.

 

 

 

 

my build.gradle

 

apply plugin: 'com.android.application'

android {
compileSdkVersion 28
buildToolsVersion "29.0.3"
useLibrary 'org.apache.http.legacy'

defaultConfig {
applicationId "com.test.testproject"
minSdkVersion 14
targetSdkVersion 28
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}

buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard.cfg'
}
}
}

dependencies {
implementation files('libs/okio-1.13.0.jar')
implementation files('libs/okhttp-3.8.1.jar')
//implementation 'com.squareup.okhttp3:3.8.1'
implementation files('libs/picasso-2.5.2.jar')
implementation files('libs/dropbox-android-sdk.jar')
implementation files('libs/dropbox-core-sdk-3.0.3.jar')
implementation files('libs/httpmime-4.0.3.jar')
implementation files('libs/jackson-core-2.7.4.jar')
implementation files('libs/json_simple-1.1.jar')
implementation fileTree(dir: 'C:\\android\\support\\v7\\appcompat\\libs', include: ['*.aar', '*.jar'], exclude: [])
}

 

 

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    It looks like you're trying to load the Dropbox SDK and dependencies directly from jar files yourself. I recommend just letting Gradle handle all of this though, by listing Dropbox as a dependency as shown here, like this:

        implementation 'com.dropbox.core:dropbox-core-sdk:3.1.3'

    That should take care of downloading the Dropbox library and its dependencies for you. That way you don't have to include all of them yourself. (Either way, you shouldn't have 'dropbox-android-sdk', as that's an old and now retired SDK.)

     

     

    • swright1512's avatar
      swright1512
      Explorer | Level 3

      changed dependencies

       

      //implementation files('libs/okio-1.13.0.jar')
      //implementation files('libs/okhttp-3.8.1.jar')
      //implementation 'com.squareup.okhttp3:3.0.1'
      //implementation files('libs/picasso-2.5.2.jar')
      implementation 'com.dropbox.core:dropbox-core-sdk:3.1.3'
      //implementation files('libs/dropbox-android-sdk.jar')
      //implementation files('libs/dropbox-core-sdk-3.0.3.jar')
      implementation files('libs/httpmime-4.0.3.jar')
      implementation files('libs/jackson-core-2.7.4.jar')
      implementation files('libs/json_simple-1.1.jar')

       now i get

       

      • failed
      • testproject/src/main/java/com/dropbox/core/examples/android/DropboxClientFactory.java
      • cannot access OkHttpClient class file for okhttp3.OkHttpClient not found
      • testproject/src/main/java/com/dropbox/core/examples/android/PicassoClient.java

       

      and 

       

      C:\test\testproject\src\main\java\com\dropbox\core\examples\android\DropboxClientFactory.java:18: error: cannot access OkHttpClient
                      .withHttpRequestor(new OkHttp3Requestor(OkHttp3Requestor.defaultOkHttpClient()))
                                                                                                  ^
        class file for okhttp3.OkHttpClient not found
      C:\test\testproject\src\main\java\com\dropbox\core\examples\android\PicassoClient.java:19: error: cannot access OkHttpClient
                      .downloader(new OkHttpDownloader(context))
                                                     ^
        class file for com.squareup.okhttp.OkHttpClient not found
      Note: Some input files use or override a deprecated API.
      Note: Recompile with -Xlint:deprecation for details.
      2 errors

       

      • cannot access OkHttpClient class file for com.squareup.okhttp.OkHttpClient not found

       

      • swright1512's avatar
        swright1512
        Explorer | Level 3

         

         

        Not sure if relevant but, when i look at the PicassoClient.java source 

         

        it is telling me the following imports are unused.  Has there been compiler change?  It is not detecting the usage of OkHttpDownloader.

         

        import com.squareup.picasso.OkHttpDownloader;
        import com.squareup.picasso.Picasso;

         

        package com.dropbox.core.examples.android;

        import android.content.Context;

        import com.dropbox.core.v2.DbxClientV2;
        import com.squareup.picasso.OkHttpDownloader;
        import com.squareup.picasso.Picasso;

        /**
        * Singleton instance of Picasso pre-configured
        */
        public class PicassoClient {
        private static Picasso sPicasso;

        public static void init(Context context, DbxClientV2 dbxClient) {

        // Configure picasso to know about special thumbnail requests
        sPicasso = new Picasso.Builder(context)
        .downloader(new OkHttpDownloader(context))
        .addRequestHandler(new FileThumbnailRequestHandler(dbxClient))
        .build();
        }


        public static Picasso getPicasso() {
        return sPicasso;
        }
        }

         

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,880 PostsLatest Activity: 2 days ago
325 Following

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!