2010-02-19 4 views
1

장면 :1.6과 2.1 사이의 하위 디렉토리에 대해 다른 aapt 동작이 있습니까?

mkdir -p foo/bar 
touch foo/bar/test.txt 

내가하고 싶은 것은 디렉토리 foo는/표시 줄 아래에 .apk 파일에있는 test.txt를 추가하는 것입니다 압축 해제 때문에 또는 나열 APK : 나는 다음과 같은 디렉토리 구조를 가지고 동일한 디렉토리 구조를 반환합니다.

aapt add test.apk foo/bar/test.txt 

내가 나열하고 압축 해제 test.apk 수 있고 모두 잘했다 :

는 1.6 SDK에서 괜찮 았는데. 그러나 2.1에서 test.txt는 test.apk의 루트에 추가됩니다. 이것은 내가 원하는 것이 아닙니다.

필자는 내 바탕 화면의 2.1 SDK 및 랩톱의 1.6 버전에서이 기능을 테스트 한 결과 작동하지 않았지만 지금은 사용하지 않았 음을 확인했습니다.

aapt 명령 줄 옵션을 살펴 봤는데 --keep-the-files-i-add-in-their-subdirectories 옵션이있는 경우 그냥 보지 않고 있습니다. :/인터넷 검색도 유용하지 아무것도 반환하지 않습니다.

정말 도움이 되겠습니까? 타사 .properties 파일을 Android 애플리케이션에 저장하여 클래스 경로에 있도록해야하며 올바른 명령 행보를 찾을 수 없다는 점이이 애플리케이션을 2.1에서 벗어나는 유일한 차단제입니다. :)

감사합니다.

+1

나는 당신이하려는 일이 공식적으로 지원되지 않는다고 생각합니다. – CommonsWare

+0

@CommonsWare 지원됩니다 - 우리가 사용했습니다. 그러나 많은 Windows AAPT 버전이 손상되었습니다. –

답변

0

Win vs. Ubuntu (모든 Linux?)에서 다른 동작이 나타나는 것 같습니다. Nolan이 Ubuntu-karmic 시스템의 원래 게시물에서 말한 것을 확인할 수 있습니다. dir 구조체는 Windows에서 잘 작동하며, 모두 Android-8을 사용합니다. 아무도 왜 또는 어떻게이 문제를 해결할 수 있는지 알고 있습니까?

0

보이는 동작은 AAPT의 버그입니다. 자세한 내용은 Repackage APK file to contain custom assets - what build tool to use?에서 확인할 수 있습니다.

일부 SDK에는 AAPT의 깨진 버전이 있습니다. 올바른 행동은 당신이 묘사하는대로 작동해야한다는 것입니다,하지만 나는 또한 그것을 작동 시키려고 애를 썼습니다.

유감스럽게도 AAPT 버전이 작동하는 SDK는 알 수 없습니다. 우리 사무실의 누군가가 찾은 시행 착오를 통해 개발팀의 목적으로 보관했으며 이제는 해당 사본 만 사용합니다.

그래서 해결책은 많은 SDK를 다운로드하고 각 AAPT를 시도하는 것입니다 (힘들고 힘들며 좋은 해결책은 아니지만 작동합니다). AAPT는 올바른 결과를 얻을 때 유용합니다.

2.1을 대상으로 사용했지만 2.1 SDK 버전인지는 잘 모르겠습니다.

(아니요,이 문제로 인해 내게 도움이되지 못했습니다. 슬프게도 문제에 대한 소음이 너무 많습니다.)

관련 문제