OkHttp上传图片应用:DexBug

时间:2015-10-17 00:16:58

标签: okhttp

我是Andriod的初学者。我正在使用OkHttp通过post方法上传图像。 所以我将okio-1.6.0 jar文件添加到我的libs文件夹中以下是我的代码我不断获取app:DexBug当我运行我的应用程序时。我试着右键单击jar并将其添加到库中并确保编译文件(' libs / okio-1.6.0.jar')在我的gradle中

    OkHttpClient client = new OkHttpClient();
    MultipartBuilder builder = new MultipartBuilder().type(MultipartBuilder.FORM);
    builder.addFormDataPart("upload", null, RequestBody.create(MEDIA_TYPE_JPG, new File("/storage/emulated/0/DCIM/Camera/20150223-130123.jpg")));
    RequestBody requestBody = builder.build();
    Request request = new Request.Builder()
            .url(Url3)
            .post(requestBody)
            .build();




    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Request request, IOException e) {
            System.out.println("request = " + request.urlString());
            System.out.println("e.getLocalizedMessage() = " + e.getLocalizedMessage());
        }

        @Override
        public void onResponse(Response response) throws IOException {
            System.out.println("response = " + response.body().string());
        }
    });


Gradle File

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "com.example.binyiliu.funfacts"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    //mutiDexEnabled true

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

dependencies {
   testCompile 'junit:junit:4.12'
   compile 'com.android.support:appcompat-v7:23.0.1'
   compile 'com.android.support:design:23.0.1'
   compile 'com.squareup.okio:okio:1.5.0'
   compile 'com.squareup.okhttp:mockwebserver:2.4.0'
   compile files('libs/okio-1.6.0.jar')
}

我已经被困在这几天了。 提前谢谢。

以下是日志

:应用程序:dexDebug 意外的顶级例外情况:     com.android.dex.DexException:多个dex文件定义Lokio / Sink;     在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)     在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)     在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)     在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)     在com.android.dx.merge.DexMerger.merge(DexMerger.java:189)     在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)     在com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)     在com.android.dx.command.dexer.Main.run(Main.java:277)     在com.android.dx.command.dexer.Main.main(Main.java:245)     在com.android.dx.command.Main.main(Main.java:106) 错误:任务':app:dexDebug'。

的执行失败
  

com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:Process' command' /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents /首页/斌/ java的''完成非零退出值2   信息:建筑失败   信息:总时间:1.372秒   信息:1错误   信息:0警告   信息:请参阅控制台中的完整输出

1 个答案:

答案 0 :(得分:0)

您定义了两次依赖库:使用 .jar ,但也使用 Gradle依赖 Okio

删除

  

编译文件(' libs / okio-1.6.0.jar')

(还有来自磁盘的.jar - 你不需要它),

或删除Gradle依赖项:

  

compile' com.squareup.okio:okio:1.5.0'