Legacy Dev Forum Posts

 View Only

Sign Up

Can't Install Using Maven for Android Studio

  • 1.  Can't Install Using Maven for Android Studio

    Posted 06-05-2025 18:21

    lcreely | 2022-03-30 08:36:43 UTC | #1

    Is it still possible to use the SDK on Android, when trying to install the library using maven from the link provided here: https://developer.genesys.cloud/api/rest/client-libraries/java/#using-the-sdk.

    I get the following message: Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.mypurecloud:platform-client-v2:146.0.2.

    build.gradle file:

    plugins { Preformatted text`id 'com.android.application' }

    android { compileSdk 32

    defaultConfig { applicationId "com.example.test" minSdk 30 targetSdk 32 versionCode 1 versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }

    buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION18 targetCompatibility JavaVersion.VERSION18 } }

    dependencies {

    implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'com.mypurecloud:platform-client-v2:146.0.2' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' }

    I have also downloaded the jar library and added it that way, but I get a lot of fatal exceptions. For example I get java.lang.NoClassDefFoundError: Failed resolution of: Lcom/fasterxml/jackson/databind/ObjectMapper; when executing: ApiClient apiClient = ApiClient.Builder.standard().withBasePath(region).build();

    Are there any tutorials on how to set up the SDK on Android Studio?


    anon11147534 | 2022-03-30 08:39:41 UTC | #2

    Hi,

    We have updated some of the Java SDK dependencies in last few months and that might have caused some incompatiblities with Android. We'll look into this and issue a fix for Android.

    I'm not certain what version the changes were added in but an older version such as 100.x.x should be more likely to work with Android.


    lcreely | 2022-03-30 22:44:50 UTC | #3

    Hello,

    I was able to to implement 100.x.x but I get a lot of fatal exceptions when trying to run anything Are there any resources available on how to use the SDK with Android?

    build.gradle:

    plugins { id 'com.android.application' }

    android {

    packagingOptions { pickFirst "META-INF/LICENSE" pickFirst "META-INF/*.properties" pickFirst "META-INF/AL2.0" pickFirst "META-INF/LGPL2.1" pickFirst "META-INF/DEPENDENCIES" pickFirst "META-INF/LICENSE.md" pickFirst "META-INF/NOTICE.md" pickFirst "META-INF/INDEX.LIST" }

    compileSdk 32

    defaultConfig { applicationId "com.example.test" minSdk 30 targetSdk 32 versionCode 1 versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" }

    buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION18 targetCompatibility JavaVersion.VERSION18 } }

    dependencies {

    implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation ('com.mypurecloud:platform-client-v2:100.0.0') implementation 'net.sourceforge.htmlunit:htmlunit:2.15' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' }

    configurations { all { exclude group: "com.google.guava" exclude group: "javax.xml.bind" } }

    MainActivity:

    package com.example.test;

    import androidx.appcompat.app.AppCompatActivity;

    import android.os.Bundle;

    import com.mypurecloud.sdk.v2.ApiClient; import com.mypurecloud.sdk.v2.ApiException; import com.mypurecloud.sdk.v2.Configuration; import com.mypurecloud.sdk.v2.api.UsersApi; import com.mypurecloud.sdk.v2.model.User; import com.mypurecloud.sdk.v2.model.UserMe; import com.mypurecloud.sdk.v2.PureCloudRegionHosts;

    import androidx.appcompat.app.AppCompatActivity;

    public class MainActivity extends AppCompatActivity {

    String clientId = ""; String clientSecret = "";

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

    PureCloudRegionHosts region = PureCloudRegionHosts.euwest1; ApiClient apiClient = ApiClient.Builder.standard().withBasePath(region).build();

    } }

    Fatal Exception(When App Opens):

    2022-03-30 23:22:23.929 4036-4036/com.example.test E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.test, PID: 4036 java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar!classes4.dex) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144) at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966) at com.mypurecloud.sdk.v2.connector.apache.ApacheHttpClientConnectorProvider.create(ApacheHttpClientConnectorProvider.java:62) at com.mypurecloud.sdk.v2.connector.ApiClientConnectorLoader.load(ApiClientConnectorLoader.java:22) at com.mypurecloud.sdk.v2.ApiClient.buildHttpConnector(ApiClient.java:167) at com.mypurecloud.sdk.v2.ApiClient.<init>(ApiClient.java:127) at com.mypurecloud.sdk.v2.ApiClient.<init>(ApiClient.java:64) at com.mypurecloud.sdk.v2.ApiClient$Builder.build(ApiClient.java:833) at com.example.test.MainActivity.onCreate(MainActivity.java:30) at android.app.Activity.performCreate(Activity.java:7994) at android.app.Activity.performCreate(Activity.java:7978) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 2022-03-30 23:30:02.336 4207-4207/com.example.test E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.test, PID: 4207 java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar!classes4.dex) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144) at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966) at com.mypurecloud.sdk.v2.connector.apache.ApacheHttpClientConnectorProvider.create(ApacheHttpClientConnectorProvider.java:62) at com.mypurecloud.sdk.v2.connector.ApiClientConnectorLoader.load(ApiClientConnectorLoader.java:22) at com.mypurecloud.sdk.v2.ApiClient.buildHttpConnector(ApiClient.java:167) at com.mypurecloud.sdk.v2.ApiClient.<init>(ApiClient.java:127) at com.mypurecloud.sdk.v2.ApiClient.<init>(ApiClient.java:64) at com.mypurecloud.sdk.v2.ApiClient$Builder.build(ApiClient.java:833) at com.example.test.MainActivity.onCreate(MainActivity.java:30) at android.app.Activity.performCreate(Activity.java:7994) at android.app.Activity.performCreate(Activity.java:7978) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 2022-03-30 23:40:18.528 4294-4294/com.example.test E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.test, PID: 4294 java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar!classes4.dex) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144) at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966) at com.mypurecloud.sdk.v2.connector.apache.ApacheHttpClientConnectorProvider.create(ApacheHttpClientConnectorProvider.java:62) at com.mypurecloud.sdk.v2.connector.ApiClientConnectorLoader.load(ApiClientConnectorLoader.java:22) at com.mypurecloud.sdk.v2.ApiClient.buildHttpConnector(ApiClient.java:167) at com.mypurecloud.sdk.v2.ApiClient.<init>(ApiClient.java:127) at com.mypurecloud.sdk.v2.ApiClient.<init>(ApiClient.java:64) at com.mypurecloud.sdk.v2.ApiClient$Builder.build(ApiClient.java:833) at com.example.test.MainActivity.onCreate(MainActivity.java:30) at android.app.Activity.performCreate(Activity.java:7994) at android.app.Activity.performCreate(Activity.java:7978) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)


    anon11147534 | 2022-03-31 13:35:40 UTC | #4

    Hi,

    I'm sorry to hear that. As far as I'm aware, the only android specific documentation is available in the README: https://github.com/MyPureCloud/platform-client-sdk-java#android-support

    This is an area we will aim to improve as we carry out a refresh of the SDKs.


    anon11147534 | 2022-04-04 10:21:48 UTC | #5

    Have you tried using the OkHttpClientConnectorProvider? It is recommended for Android: https://github.com/MyPureCloud/platform-client-sdk-java#setting-the-http-connector. The exceptions you are getting appear to be coming from the Apache HTTP client.


    system | 2022-05-05 10:22:46 UTC | #6

    This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.


    This post was migrated from the old Developer Forum.

    ref: 14078