2013-07-15 5 views
2

으로 재생되지 않습니다. 문제를 재현하는 방법 : 네이티브 (C++) 언어를 사용하는 XPeria Z (모델 C6602 또는 C6603)의 Play 스토어에서 유료 앱을 설치하십시오. 라이브러리. 앱 시작시 기본 라이브러리를 찾거나로드하지 않습니다. 고객에게 Play 스토어에 업로드 한 정확히 동일한 apk를 보낼 때 문제가 없으며 모든 것이 작동합니다.네이티브 라이브러리가 안드로이드 4.2.2

이 버그는 내 응용 프로그램 (Audio Evolution Mobile 및 USB Audio Recorder PRO) 중 2 개에 표시되며 버그 보고서는 Android 4.2.2를 실행하는 XPeria Z 사용자의 것일뿐입니다.

두 앱의 apk를 앱을 구매 한 고객에게 보냈습니다. 설치 후 앱이 잘 돌아갔습니다. 다른 기기를 사용하는 다른 사용자에게는이 문제가 발생하지 않습니다.

+1

무료 데모 버전에서 문제가 발생합니까? 앱이 지원하는 CPU 아키텍처는 무엇입니까 ('Application.mk'에 기반)? – CommonsWare

+0

아마 http://code.google.com/p/android/issues/detail?id=34880과 관련되었을 수도 있습니다. –

+0

하나의 데모 버전이 직접 APK 다운로드인데도 데모 버전에 대한 보고서가없는 것 같습니다. 나는 armeabi와 armeabi-v7을 위해 컴파일한다. 지금까지는 다른 기기에이 문제가 나타나지 않고 apk를 직접 이메일로 보내면 작동하기 때문에 Play 스토어 앱과의 상호 작용이므로 기본 공유 객체를 '최적화'할 수 있습니다. – extreamsd

답변

0

본인의 문제와 동일한 문제인지 확실하지 않지만 xperia z에로드되지 않은 기본 라이브러리와 비슷한 문제가 있습니다. 당신이 좋아하는 기본 lib 디렉토리를로드하는 경우 그래서

/data/data/package_name/lib/libmy.so 

: 대신

/mnt/asec/package_name-1/lib/libmy.so 

:이 문제로 인해 다른 폴더에 위치 할 파일을 .so를 일으키는 지불 애플 리케이션, 전방 잠금이었다

dlopen(lib_path, RTLD_LAZY); 

두 번째 경로를 사용하면 XPeria Z에서는 실패합니다. 이 첫 번째 경로를 시도해야합니다.

로컬이 문제를 재현하려면 사용 자바 코드가 제대로 작동에서

adb install -l my.apk 

가 실제로 네이티브 라이브러리를로드, 유일한 문제는 libs와 네이티브 코드에서로드로했다. 또한이 경로를 코드로 하드 ​​코드 할 수 있는지 궁금합니다. package_name-1, 언젠가 package_name-2처럼 보입니다 :)

+0

한편 나는 같은 결론에 도달했습니다. 라이브러리는 결국 실제로로드되었지만 앱이 올바르게 설치되었는지 확인하기 위해 라이브러리에서 코드를 확인했습니다. 외관상으로는 잘못된 디렉토리를 찾고있었습니다. 사용자가 Android 2.3 이상을 실행중인 경우 ApplicationInfo의 nativeLibraryDir을 사용하여 경로를 가져옵니다. 이것은 2.2 용으로 제작되었으므로 문제의 일부 였지만 지금은 반사를 사용하고 있으므로 모두 해결됩니다. – extreamsd

+0

nativeLibraryDir 힌트 주셔서 감사합니다. 우리는 이제 libs 폴더가 /data/app-lib/com.exampple.app/로 변경된 android 4.3에서 다시이 문제에 직면했습니다. – marcinj

관련 문제