运行我的应用程序时出现未知错误

时间:2016-02-01 09:05:55

标签: java android jersey

当我在android studio中运行我的应用程序时,消息错误显示我的错误:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
  

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:org / glassfish / jersey / client / ClientProperties.class

我不知道如何解决这个错误。

我认为此错误取决于此代码:

import com.github.irobson.jgenderize.model.NameGender;
import java.io.Serializable;
import java.util.List;
import java.util.Locale;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.MediaType;

public class DefaultGenderize implements Genderize, Serializable {

    private final Client client = ClientBuilder.newClient();

    private static final String GENDERIZE_IO_API_URL = "https://api.genderize.io/";

    public NameGender getGender(String name, Locale locale) {
        WebTarget target = client.target(GENDERIZE_IO_API_UR`enter code here`L).queryParam("name", name);
        if (locale != null) {
            target = target.queryParam("country_id", locale.getCountry());
            target = target.queryParam("language_id", locale.getLanguage());
        }
        return target.request(MediaType.APPLICATION_JSON_TYPE).get(NameGender.class);
    }

    public List<NameGender> getGenders(String[] names, Locale locale) {
        GenericType<List<NameGender>> genericType = new GenericType<List<NameGender>>() {
        };

        WebTarget target = client.target(GENDERIZE_IO_API_URL);
        for (int i = 0; i < names.length; i++) {
            target = target.queryParam(String.format("name[%d]", i), names[i]);
        }
        if (locale != null) {
            target = target.queryParam("country_id", locale.getCountry());
            target = target.queryParam("language_id", locale.getLanguage());
        }
        return target.request(MediaType.APPLICATION_JSON_TYPE).get(genericType);
    }

    public NameGender getGender(String name) {
        return getGender(name, null);
    }

    public List<NameGender> getGenders(String... names) {
        return getGenders(names, null);
    }
}

或从某些图书馆。

2 个答案:

答案 0 :(得分:1)

  

com.android.build.api.transform.TransformException:   java.util.zip.ZipException:重复条目:   组织/的glassfish /球衣/客户端/ ClientProperties.class

您有多个appcompat-v7,这就是为什么会遇到问题。

<强>唐&#39;吨

compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:appcompat-v7:23.0.0'

<强>不要

compile 'com.android.support:appcompat-v7:21.0.3'

修改

 apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.0"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

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

dependencies {
    //  compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'javax.ws.rs:javax.ws.rs-api:2.0.1'
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support:design:23.0.0'
    //   compile 'javax.websocket:javax.websocket-all:1.1'
    // compile files('libs/hk2-api-2.2.0-b21.jar')
    compile 'com.android.support:multidex:1.0.0'
    //  compile 'org.glassfish.jersey:project:2.22.1'
    // compile 'org.glassfish.jersey.core:jersey-client:2.0-m04'
    compile files('libs/jersey-client-2.19.jar')
}

答案 1 :(得分:0)

我可以看到两个&#34;支持v7&#34;依赖。删除其中一个。

compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:appcompat-v7:23.0.0'

结果

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'javax.ws.rs:javax.ws.rs-api:2.0.1'
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.android.support:design:23.0.0'
    compile 'com.android.support:multidex:1.0.0'
    compile files('libs/jersey-client-2.19.jar')
}