2012-03-29 2 views
2

개미를 사용하여 명령 줄 모드로 안드로이드 프로젝트를 만들려고합니다. 그것은 일식과 함께 작동하고 내가 최신 안드로이드 SDK를 설치할 때까지 개미와 함께 사용되었습니다.개미가있는 안드로이드 프로젝트 빌드

나는 ant release -buildfile projectdir\build.xml을 실행합니다. 컴파일 프로세스는 정상이며 apk를 정렬 한 후 런타임에 ClassDefNotFoundError acra.ACRA으로 실패합니다. 프로젝트에서 acra에 대한 참조를 제거하려고 시도했지만 라이브러리 jar에서 오는 코드를 실행하려고 할 때 런타임에 오류가 발생합니다.

내 항아리는 프로젝트의 루트에있는 libs 폴더에 있습니다. 그리고 저는 이것이 개미가 그들을 APK에 연결시킬 수 있다는 것을 이해했습니다. 그러나 그렇지 않습니다.

이전 버전의 안드로이드 SDK를 사용했을 때, build.properties이라는 파일에 jars 폴더 external.libs.dir=libs을 참조하는 파일이있었습니다. 그러나 이제는 새로운 속성 이름 jar.libs.dir=libs과 새로운 속성 파일 이름 ant.properties을 사용하더라도 더 이상 작동하지 않게됩니다.

나는 컴파일 타임에 librairies가 발견되었지만 apk에 링크되어 있지 않아 런타임에 찾을 수 없기 때문에 ClassDefNotFoundError가 발생한다고 읽었습니다. apk에서 외부 항아리를 연결하려면 어떻게해야합니까?

+0

private build.xml은 "jar.libs.ref"를 참조하지 않습니까? – NickT

+0

아니요, 이것에 대해서는 언급하지 않고 build.xml은 안드로이드 툴인 android.bat에 의해 생성되었습니다. – Joel

+0

오, 잘 생각해 보았는데, 여전히 오래된 r16 호환 build.xml이 있는지 궁금해했습니다. 나에게서 두려운 제안이 없습니다. – NickT

답변

2

컴파일 과정을 확인, 그리고 APK를 정렬 후에는 적어도 현재의 판에, ClassDefNotFoundError acra.ACRA

ACRA에는 acra.ACRA 클래스가 없습니다와 런타임에 실패합니다. org.acra.ACRA입니다.

내 jar 파일은 프로젝트 루트의 libs 폴더에 있습니다. 그리고 저는 이것이 개미가 그들을 APK에 연결시킬 수 있다는 것을 이해했습니다. 그러나 그렇지 않습니다.

예. 그런 다음 ProGuard가이를 제거합니다 (unless you teach ProGuard not to).

+0

예. 그것은 org.acra.ACRA입니다. 그리고 proguard.cfg에 이미 그 라인을 추가했습니다.하지만, 이제는 최신 안드로이드 SDK를 설치 했으므로 더 이상 작동하지 않습니다. – Joel

+0

당신이 제공 한 링크에서 제가 이야기하고있는 것을 볼 수 있습니다. 여기서 최종 의견은 정확하게 제가 가진 문제입니다. 불행히도 그것은 대답으로 오지 않습니다. – Joel

+1

@Joel : R17 도구를 사용하는 경우 더 이상 'proguard.cfg'를 사용하지 않습니다. http://tools.android.com/recent/proguardimprovements 새 설정에 적응하면 도움이되는지 확인하십시오. 또한 'ant debug'로 테스트하여 ProGuard와 관련된 문제인지 확인할 수 있습니다. – CommonsWare