2016-06-14 1 views
1

그래서 일부 빌드에는 포함되어 있지만 다른 빌드에는 포함되지 않은 .so가 있습니다.Android의 경우 빌드에 사용되는 abi를 결정하는 요소

내 prebuild 스크립트가 .so를 삭제하면 관련 .jar이 build.gradle에서 라이브러리를 제거합니다.

라이브러리는 제 3 자 출신이므로 x86 또는 arm-v7을 묻는 일을 제어 할 권한이 없습니다. 팔에 내게만 제공됩니다.

라이브러리 지원없이 빌드 할 때 apk에 대한 x86 지원이 없음을 Xamarin Test에서 오류가 발생합니다.

실제로 api가 지원하는 abi를 제어합니다. lib/<ABI> 폴더 아래 APK 내부 ​​.so를 파일의 존재에 의해 결정됩니다 안드로이드 응용 프로그램에서 지원

https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/

A- 비스 :

답변

0

그것은 내 사전 빌드 스크립트가 실제로 .so를 파일을 삭제하지 않은 것으로 나타났다.

그것은이었다

RF RM은/코어/SRC/메인/jniLibs

하지

RF RM은 코어/src에

2

자 마린 개발자 포털에 Using Native Libraries 문서는이 중 절반을 설명 ABI는 armeabi, armeabi-v7a, arm64-v8a, mips, mips64, x86, x86_64 (현재 7 개의 ABI) 중 하나 이상이 될 수 있습니다.

나는 개인적으로 파일을 배포 얻을 무엇을 지원하는 데 도움이 Google Play 스토어에서 응용 프로그램을 사용

https://play.google.com/store/apps/details?id=com.xh.nativelibsmonitor.app

그래서 무슨 일하는 대부분의 장치는 일반적으로 여러 ABI를을 지원하는 것입니다. 따라서 Android Package Manager가 장치에서 선호하는 .so 파일을 설치하는 데 사용하는 지원되는 ABI 목록을 얻을 수 있습니다.

기본적으로 여기에 나와있는 최상의 방법은 위에 나열된 <ABI> 폴더 각각에 최적화 된 라이브러리를 배치하는 것입니다. 응용 프로그램이 장치에 설치되면 지원되는 아키텍처 중 하나만 설치 될 것입니다.

사람이 읽을 수있는 리소스로서 http://ph0b.com/android-abis-and-so-files/에 많은 감사를드립니다.

그렇지 않으면 더 기술적 인 자원 : https://developer.android.com/ndk/guides/abis.html

+0

것은 내가 자 마린 SDK를 사용하고 있지 않다/주/jniLibs 그러나 Xamarin 테스트 도구를 사용하려고합니다. ABI를 사용해야하는 요소는 모두 제거했지만 APK 만 팔을 지원한다는 오류가 계속 발생합니다. – draksia

+0

이것은 네이티브 Android에도 적용됩니다. 대답은 장치가 지원하는 abi를 제어하는 ​​것입니다. 당신의 오류가 무엇입니까 진술하고있는 장치는 x86 지원을 가진 을 찾지 못합니다. 따라서 APK는 지원되는 을 제공하지 않습니다. –

+0

abi를 사용하지 않고 java 만 사용하는 경우 모든 유형이 올바르게 지원되어야합니까? – draksia

관련 문제