서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.

안녕하세요.. 드디어 글을 쓸 수 있게 되었네요 ^^.

요즘 한창 NDK와 안드로이드 미디어 프레임워크 쪽을 공부하고 있는 초보청년개발자입니다.


먼저 질문하기에 앞서 안드로이드의 모든 것 NDK 저자 두분께 감사의 말씀을 드립니다~

정말 많은 공부가 되고 있습니다 ㅎ


질문드릴께요~


책 내용중에서 PDK를 이용한 네이티브 AudioFlinger 제어 예제를 테스트 중입니다.


PDK소스로 최신 젤리빈 4.2.2_r1을 사용하다보니 AudioTrack 함수들 중 인자타입이나 갯수가 변경되어

그에 맞게 audioflinger_wrapper.cpp 부분을 조금 수정 하였습니다.


문제는 build/envsetup.sh 적용하고 mm 명령어로 컴파일 해서 apk파일 만들고

adb install 명령어로 apk파일을 제 넥서스7에 설치해보려고 하니


Failure [INSTALL_FAILED_DEXOPT] 에러가 뜨면서 설치가 되질 않고..


최초 설치 후 한번 더 설치를 해보려고 하면


Failure [INSTALL_FAILED_UID_CHANGED] 에러가 뜨네요..



apk파일을 만들 때 문제가 있는 것 같습니다.ㅠㅠ.


혹시나 해서 안드로이드 기본 프로젝트를 두개를 생성해서 테스트 해보았습니다.

하나는 이클립스에서 apk 생성

다른 하나는 android.mk 파일과 mm 명령어를 통해 apk 생성


두가지 apk로 adb install로 기기에 설치 시도를 해보았는데

이클립스에서 생성한 apk 파일만 성공적으로 설치되고

android.mk 파일과 mm 명령어로 생상한 apk 파일은 위와 같은 에러가 계속 뜹니다. ㅠㅠ


아직 지식이 해박하지 못하여 제가 놓친 부분이 있을 수도 있을 것 같네요 ^^:;


조언 부탁드리겠습니다~~!



참고용 로그 첨부해 보겠습니다

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=4.2.2

TARGET_PRODUCT=full

TARGET_BUILD_VARIANT=eng

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

TARGET_ARCH_VARIANT=armv7-a

HOST_ARCH=x86

HOST_OS=linux

HOST_OS_EXTRA=Linux-2.6.38-16-generic-x86_64-with-Ubuntu-11.04-natty

HOST_BUILD_TYPE=release

BUILD_ID=JDQ39

OUT_DIR=out

============================================

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Effect_Tick.ogg:system/media/audio/ui/Effect_Tick.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressStandard.ogg:system/media/audio/ui/KeypressStandard.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressSpacebar.ogg:system/media/audio/ui/KeypressSpacebar.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressDelete.ogg:system/media/audio/ui/KeypressDelete.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressReturn.ogg:system/media/audio/ui/KeypressReturn.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/VideoRecord.ogg:system/media/audio/ui/VideoRecord.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/camera_click.ogg:system/media/audio/ui/camera_click.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/LowBattery.ogg:system/media/audio/ui/LowBattery.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Dock.ogg:system/media/audio/ui/Dock.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Undock.ogg:system/media/audio/ui/Undock.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Lock.ogg:system/media/audio/ui/Lock.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/Unlock.ogg:system/media/audio/ui/Unlock.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Sceptrum.ogg:system/media/audio/ringtones/Sceptrum.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressStandard_120.ogg:system/media/audio/ui/KeypressStandard.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressSpacebar_120.ogg:system/media/audio/ui/KeypressSpacebar.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressDelete_120.ogg:system/media/audio/ui/KeypressDelete.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/effects/ogg/KeypressReturn_120.ogg:system/media/audio/ui/KeypressReturn.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/Capella.ogg:system/media/audio/notifications/Capella.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/CetiAlpha.ogg:system/media/audio/notifications/CetiAlpha.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/Polaris.ogg:system/media/audio/notifications/Polaris.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/Pollux.ogg:system/media/audio/notifications/Pollux.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/notifications/ogg/Procyon.ogg:system/media/audio/notifications/Procyon.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Aquila.ogg:system/media/audio/ringtones/Aquila.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/ArgoNavis.ogg:system/media/audio/ringtones/ArgoNavis.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Carina.ogg:system/media/audio/ringtones/Carina.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Centaurus.ogg:system/media/audio/ringtones/Centaurus.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Cygnus.ogg:system/media/audio/ringtones/Cygnus.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Draco.ogg:system/media/audio/ringtones/Draco.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Machina.ogg:system/media/audio/ringtones/Machina.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Orion.ogg:system/media/audio/ringtones/Orion.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Pegasus.ogg:system/media/audio/ringtones/Pegasus.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Pyxis.ogg:system/media/audio/ringtones/Pyxis.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Rigel.ogg:system/media/audio/ringtones/Rigel.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Scarabaeus.ogg:system/media/audio/ringtones/Scarabaeus.ogg ignored.

PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Solarium.ogg:system/media/audio/ringtones/Solarium.ogg ignored.

make: Entering directory `/root/Android-JellyBean'

target R.java/Manifest.java: NativeBasic2 (out/target/common/obj/APPS/NativeBasic2_intermediates/src/R.stamp)

Warning: AndroidManifest.xml already defines versionCode (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines versionName (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.

target Java: NativeBasic2 (out/target/common/obj/APPS/NativeBasic2_intermediates/classes)

Copying: out/target/common/obj/APPS/NativeBasic2_intermediates/classes-jarjar.jar

Copying: out/target/common/obj/APPS/NativeBasic2_intermediates/emma_out/lib/classes-jarjar.jar

Copying: out/target/common/obj/APPS/NativeBasic2_intermediates/classes.jar

Copying: out/target/common/obj/APPS/NativeBasic2_intermediates/noproguard.classes.jar

target Dex: NativeBasic2

Copying: out/target/common/obj/APPS/NativeBasic2_intermediates/noproguard.classes.dex

target Package: NativeBasic2 (out/target/product/generic/obj/APPS/NativeBasic2_intermediates/package.apk)

Warning: AndroidManifest.xml already defines versionCode (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines versionName (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.

Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.

 'out/target/common/obj/APPS/NativeBasic2_intermediates/classes.dex' as 'classes.dex'...

Processing target/product/generic/obj/APPS/NativeBasic2_intermediates/package.apk

Done!

Install: out/target/product/generic/system/app/NativeBasic2.odex

Install: out/target/product/generic/system/app/NativeBasic2.apk

make: Leaving directory `/root/Android-JellyBean'



고도리

2013.03.05 11:06:42
*.200.239.210

허걱....4.2.2r1 이라니요...ㅠ.ㅠ


일단 저도 장비가 4.2.1 까지 밖에 없어서(JB-MR1.1) 거기서 먼저 테스트 해 본 후에야 말씀 드릴 수 있겠네요...쩝

김바람

2013.03.05 12:14:14
*.118.69.52

고도리님~ 자답하겠습니다 ^^:;ㅎ

APK 만들기 위한 Android.mk 소스에


LOCAL_DEX_PREOPT := false 이부분을 추가 시켜주면

apk파일이 .odex와 .apk로 분리 생성되는게 아니라 하나의 .apk 파일로 생성되고

adb install 로 설치해보니 잘 설치되네요^^v.... 

근데 이젠 샘플.wav 파일재생 해보니

스피커에서 이상한 소리가 나네요;;; 소스랑 또 씨름을 해봐야 ㅠㅠ...


고도리님 늦은 시간에 답변 감사드립니다~ㅎㅎ

책 항상 감사하게 읽고 공부하고 있습니다^^

전호철

2013.03.05 20:31:34
*.162.60.10

새로 생긴 옵션인가보네요. 아니면 기본옵션이 바꼈나봐요.

옛날에는 저 옵션 없이도 잘 됐었거든요.

좋은 정보 감사합니다~

김바람

2013.03.07 03:41:02
*.118.69.52

아 그렇군요 ^^
생각보다 금방 해결해서 다행이예요 ㅋ

고도리

2013.03.06 09:28:17
*.111.12.170

소리가 이상하다면......


wrapper 파일에서 set() 함수에서 세팅하는 부분이 바뀌었을 가능성이 높습니다.

제가 삼일정도 외부에 나가 있어야 해서 테스트는 못하고(강의 및 회의), 일단 pdk에서 테스트 한 후에 소스 올려놓도록 하겠습니다.

김바람

2013.03.07 03:41:35
*.118.69.52

바쁘신 와중에도 테스트를 해주신다니 ㅠㅠ 감사합니다 ㅎ

List of Articles
번호 제목 글쓴이 날짜 조회 수sort

PDK를 이용하여 안드로이드 프레임워크 so파일 참조에 관해서 질문있... [7]

예제를 따라하던 중 Android.mk 파일로 APK파일 생성 후 설치시 ... [6]

ndk 38페이지 질문_repo file [1]

안드로이드의 모든것 분석과 포팅 교재 관련 [2]

  • nexus26
  • 2011-07-05
  • 조회 수 10562

[Linux와 Android] 001 - 임베디드 시스템에 대하여 file

다시 질문 드립니다.ㅜㅜ apk 설치문제입니다. [3]

책 관련해서 질문이 있습니다. [1]

  • winpih
  • 2011-07-13
  • 조회 수 9030

안드로이드 init의 특징에 대해 질문있습니다. [2]

117쪽 ueventd 실행 부분.. [1]

475페이지 그림 외 건의 사항.. [2]

[Linux와 Android] 002 - UNIX/Linux system 개요 file

[Linux와 Android] 002 - UNIX/Linux system 개요(Continue......

p186. Gingerbread 센서 구조의 간략한 설명 요청드립니다. [3]

  • forone
  • 2011-08-25
  • 조회 수 8429

NDK를 이용한 camera 제어 예제에 대해 문의 드립니다. [7]

  • 죽유
  • 2013-01-11
  • 조회 수 8047

chapter7 안드로이드 오디오 서브시스템 에서 궁금한게 있습니다 [1]

개발환경 설정 중 문의사항입니다. file [1]

아래 [SDL 예제관련 에러 질문입니다.] 이어서... [3]

  • 민민
  • 2012-12-26
  • 조회 수 7753

책이 나온내용이지만 좀 다른예기일수도 잇네요 [1]

RGB 부분에 대해서 질문이 있습니다. [1]

  • ys2cdh
  • 2012-01-05
  • 조회 수 7380

JNI로 휴대폰 디바이스 번호를 구하려고 합니다 file [3]

  • fox8306
  • 2012-09-19
  • 조회 수 6878

사용자 로그인