Java Android Studio:org.openstack4j.api.exceptions.ConnectorNotFoundException:classpath中未找到openstack4j连接器

Java Android Studio:org.openstack4j.api.exceptions.ConnectorNotFoundException:classpath中未找到openstack4j连接器,java,android,android-studio,ibm-cloud,object-storage,Java,Android,Android Studio,Ibm Cloud,Object Storage,我正试图通过android studio连接到对象存储服务,收到以下错误消息: 03-21 15:47:19.668 31335-31335/com.example.michaelwizard.coudap I/System.out:VCAP_应用程序-空03-21 15:47:19.668 31335-31335/com.example.michaelwizard.coudapi/System.out: VCAP_服务-空03-21 15:47:19.688 31335-31335/com.e

我正试图通过android studio连接到对象存储服务,收到以下错误消息:

03-21 15:47:19.668 31335-31335/com.example.michaelwizard.coudap I/System.out:VCAP_应用程序-空03-21 15:47:19.668 31335-31335/com.example.michaelwizard.coudapi/System.out: VCAP_服务-空03-21 15:47:19.688 31335-31335/com.example.michaelwizard.coudapp W/System.err: [org.openstack4j.core.transport.internal.HttpExecutor]错误:否 在类路径03-21 15:47:19.689中找到OpenStack4j连接器 31335-31335/com.example.michaelwizard.coudapp D/AndroidRuntime: 正在关闭VM 03-21 15:47:19.689 31335-31335/com.example.michaelwizard.coudape/AndroidRuntime:FATAL 例外情况:主要 进程:com.example.michaelwizard.coudapp,PID:31335 org.openstack4j.api.exceptions.ConnectorNotFoundException:否 在类路径中找到OpenStack4j连接器 在 org.openstack4j.core.transport.internal.HttpExecutor.service(HttpExecutor.java:33) 在 org.openstack4j.core.transport.internal.HttpExecutor.execute(HttpExecutor.java:51) 在 org.openstack4j.openstack.internal.OSAuthenticator.authenticateV3(OSAuthenticator.java:156) 在 org.openstack4j.openstack.internal.OSAuthenticator.invoke(OSAuthenticator.java:78) 在 org.openstack4j.openstack.client.OSClientBuilder$ClientV3.authenticate(OSClientBuilder.java:163) 在 org.openstack4j.openstack.client.OSClientBuilder$ClientV3.authenticate(OSClientBuilder.java:127) 在 com.example.michaelwizard.coudapp.ObjectActivity.ObjectOpenStack4j(ObjectActivity.java:87) 在 com.example.michaelwizard.coudapp.ObjectActivity.onClick(ObjectActivity.java:104) 在android.view.view.performClick上(view.java:5198) 在android.view.view$PerformClick.run(view.java:21147) 位于android.os.Handler.handleCallback(Handler.java:739) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:148) 位于android.app.ActivityThread.main(ActivityThread.java:5417) 位于java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

这是我的代码

void ObjectOpenStack4j() throws JSONException, ParseException {
        JSONParser parser = new JSONParser();
        Object obj;
        JSONArray vcapArray;
        JSONObject jsonObject
                ,vcap
                ,credentials;
        String envServices,username = null,password = null,auth_url = null,
domain = null,project = null;

        Identifier domainIdent,projectIdent;

        String envApp = System.getenv("VCAP_APPLICATION");
        System.out.println("VCAP_APPLICATION - " + envApp);
        envServices = System.getenv("VCAP_SERVICES");
        System.out.println("VCAP_SERVICES - " + envServices);

        if (envServices != null && envServices.length() > 0) {
//
        obj = parser.parse(envServices);

        System.out.println("Result: "+obj.toString());

        jsonObject = (JSONObject) obj;
        vcapArray = (JSONArray) jsonObject.get("Object-Storage");
        vcap = (JSONObject) vcapArray.get(0);
        credentials = (JSONObject) vcap.get("credentials");

            username = credentials.get("username").toString();
            password = credentials.get("password").toString();
            auth_url = credentials.get("auth_url").toString() + "/v3";
            domain = credentials.get("domainName").toString();
            project = credentials.get("project").toString();

        }else{
            username = "xxxxxxxxxxxxxxxxxx";
            password = "xxxxxxxxxxxx";
            auth_url = "https://xxxxxx.open.xxxxxx.com";
            domain = "12345";
            project = "xxxxxxxxxxxxxxxxxx";
        }


        domainIdent = Identifier.byName(domain);
        projectIdent = Identifier.byName(project);


        OSClient os = OSFactory.builderV3().endpoint(auth_url).
credentials(username, password, domainIdent).scopeToProject(projectIdent, 
domainIdent)
                .authenticate();
        SwiftAccount  account = os.objectStorage().account().get();
        System.out.println("Result: "+account);

    }
这是我的渐变设置

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "com.example.xxx.coudapp"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/LGPL2.1'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile(
'proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        incremental true
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    //    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0-alpha1'
    compile 'com.google.code.findbugs:jsr305:3.0.1'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.cloudant:cloudant-sync-datastore-android:0.15.5'
    compile 'com.cloudant:cloudant-sync-datastore-javase:0.15.5'
    compile('com.googlecode.json-simple:json-simple:1.1.1') {
        exclude group: 'org.hamcrest', module: 'hamcrest-core'
    }
    compile 'org.pacesys:openstack4j-core:2.11'
    compile 'org.pacesys:openstack4j-core-test:2.11'
}

嗨,迈克尔。请帮助我理解:您正在使用Android Studio构建一个Android应用程序,但在您的移动Android应用程序中使用Swift(和openstack)调用ObjectStore?在我看来,在Android中使用RESTAPI可能更容易。我可能在这里完全偏离了方向,但我以前从未见过在这种情况下使用Swift。@Johngereken非常感谢您的回复来自ibm网站的纪录片没有很好的解释性,这就是为什么我认为我需要在IDE上使用Swift类的原因,但我非常喜欢看到如何使用REST API将图像发布到ibm对象存储的示例,我每天都在搜索没有看到任何样品。非常感谢你的问候