program type already present error

2019. 12. 8. 11:38문제들

class reference duplication

 

libs 에 jar 라이브러리 추가시 생길 수 있는 에러이다. 

 

이유는 클래스가 중복 참조되기 때문이다.

 

1. multidex의 제한 문제

android가 java class를 변환해서 dex(dalivk executable)로 저장하는데,

 

dex의 갯수는 65536개로 제한 되어있다. 

 

dex의 갯수가 최대 숫자를 넘어가면 중복 참조가 되면서

 

외딴 class에서 문제가 났다고 compile과정에서 에러가 난다. 

 

이럴땐 app build.gradle 에서 

 

     android -> defaultConfig 안에 

 

          multiDexEnabled true

 

    를 추가해준다. 

dex를 2개 이상 써줘서 클래스 중복 참조를 막는다.

 

2. 같은 library의 다른 버전 2개가 동시에 존재할 경우

 

1) app-> build.gradle -> dependencies 에서 확인

 

2) shift 2번 연타 -> 문제 발생하는 class 검색

 

1,2번을 통해 확인해보고 중복된 라이브러리를 제거할 수 있다.