我是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警告 信息:请参阅控制台中的完整输出
答案 0 :(得分:0)
您定义了两次依赖库:使用 .jar ,但也使用 Gradle依赖 Okio 。
删除
编译文件(' libs / okio-1.6.0.jar')
(还有来自磁盘的.jar - 你不需要它),
或删除Gradle依赖项:
compile' com.squareup.okio:okio:1.5.0'