web-dev-qa-db-fra.com

Android Studio - Type de programme déjà présent: org.hamcrest.CoreMatchers

Je ne sais pas pourquoi cette erreur existe:

Program type already present: org.hamcrest.CoreMatchers
Message{kind=ERROR, text=Program type already present: org.hamcrest.CoreMatchers, sources=[Unknown source file], tool name=Optional.of(D8)}

Mon code dans l'étendue si la dépendance de build.gradle (Module: app) est:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:26.1.0'
implementation 'com.Android.support.constraint:constraint-layout:1.0.2'
testImplementation ('junit:junit:4.12'){
    exclude group: 'org.hamcrest', module: 'hamcrest-core'
}
androidTestImplementation 'com.Android.support.test:runner:1.0.1'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.monkeylearn:monkeylearn-Java:0.1.4'

}

Activité principale:

import Android.support.v7.app.AppCompatActivity;
import Android.os.Bundle;
import com.monkeylearn.MonkeyLearn;
import com.monkeylearn.MonkeyLearnException;
import com.monkeylearn.MonkeyLearnResponse;

public class MainActivity extends AppCompatActivity {

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

        try {
            MonkeyLearn ml = new MonkeyLearn("*******************************");
            String moduleId = "*********";
            String[] textList = {"This is a text to test your classifier", "This is some more text"};
            MonkeyLearnResponse res = ml.classifiers.classify(moduleId, textList, true);
            System.out.println( res.arrayResult );
        } catch (MonkeyLearnException e) {
            e.printStackTrace();
        }
    }
}

Avez-vous des idées?

10
Sze Man WONG

Il y a un problème similaire avec simple-json dans une autre question à laquelle j'ai répondu ici . Je vous suggère de faire la même chose pour monkeylearn-Java et junit ou toute autre dépendance non google, un par un, je veux dire télécharger leurs fichiers jar et placez-les dans le dossier libs un par un pour trouver le problème et laissez-le dans le dossier libs.

Je pense que c'est un bug dans Android Studio ou dans Gradle. 

1
M D P

J'ai eu un problème similaire avec simple-json. Pour cela, la solution consistait à exclure la dépendance JUnit.

Je ne suis pas un expert en programmation Android, mais je trouve étrange que vous excluiez hamcrest-core de JUnit testImplementation. Je suggérerais plutôt d'exclure les dépendances transitives des bibliothèques externes.

Pour simple-json c'était ma solution:

implementation('com.googlecode.json-simple:json-simple:1.1.1') {
    exclude group: 'junit', module: 'junit'
}

Peut-être que vous pouvez faire la même chose pour monkeylearn-Java?

0
Luksurious