2014-01-15 3 views
4

Android 앱을 개발 중이며 한 구성 요소의 경우 Android 코드를 사용하지 않기 때문에 Android 외부에서 테스트 할 수 있습니다.xmlpullparser 용 Android dalvik 변환

는 XStream을 사용하고 난 다음 라이브러리가 포함되어 있습니다 : xstream1.4.6 xpp3 분-1.1.4c xmlpull - 1.1.3.1

내가 단위 안드로이드 모든 외부 내 코드를 테스트 잘 작동합니다 .

나는 시도하고 안드로이드와 함께 사용

나는 다음과 같은 오류 얻을 :

[2014-01-15 18:59:23 - Dex Loader] Unable to execute dex: Multiple dex files define Lorg/xmlpull/v1/XmlPullParser; 
[2014-01-15 18:59:23 - AndroidMentor] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/xmlpull/v1/XmlPullParser; 

이 깨끗한 새로운 안드로이드 응용 프로그램/안드로이드 JUnit을 응용 프로그램에 있습니다. bin, cleaning 등을 삭제하려고 시도했지만 사용하지는 않습니다. 그것은 단지 이것 일 뿐이며, 다른 것들은 어떤 문제도 보이지 않습니다.

나는이 pullparser를 필요로하는데 다른 것들은 나를 위해 xstream과 잘 작동하지 않는 것처럼 보입니다.

답변

2

나는 안드로이드 앱과 통합하려고하는 별도로 개발 된 프로젝트에서 같은 문제를 겪고있었습니다. 문제는 안드로이드 API가 클래스 XmlPullParser (https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html)를 정의하고이 충돌이 일어나는 이유입니다.

Android에서 정의한 버전의 클래스를 사용할 수있는 프로젝트에서 xmlpull 종속성을 제외하여 문제를 해결했습니다. 이건 내 build.gradle 파일 (배제을 설명하기 위해 단지 종속 섹션) 응용 프로그램 모듈의 모습입니다 :

dependencies { 
    compile (project(':epublib:epublib-core')) { 
     exclude group: 'xmlpull' 
    } 
    compile 'com.android.support:appcompat-v7:21.0.+' 
    compile 'com.android.support:support-v4:21.0.+' 
} 

구문은 중요하다. 형식이어야합니다.

compile (project(':project-name')) { 
     exclude group: 'group-name', module: 'module-name' 
} 
+1

제외 할 프로젝트에 따라 그룹 이름과 모듈 이름으로 사용하는 내용이 다릅니다. 추가 정보 : https://stackoverflow.com/questions/47326984/whats-in-gradle-a-group-module-and-artifact/47327695#47327695 – OneWorld