我的问题是针对64位Android系统的原生Android开发.
我正在寻找一种方法,使用gradle构建系统在64位Android系统上配置32位编译本机库的支持.应用程序应使用的库仅作为32位版本提供.将这些库移植到64位是非常耗时且容易出错的.
因此,我想配置gradle来部署这些预先构建的32位二进制文件,并使用32位版本的Android应用程序.
当前配置导致以下错误:
E/AndroidRuntime? FATAL EXCEPTION: main
Process: <application_name>, PID: 2170
java.lang.UnsatisfiedLinkError:
dalvik.system.PathClassLoader
[DexPathList[[zip file "/data/app/<application_name>/base.apk"],
nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]]
enter code here`couldn't find "libmynativelibrary.so"
at java.lang.Runtime.loadLibrary(Runtime.java:366)
Run Code Online (Sandbox Code Playgroud)
好像PathClassLoader在错误的目录中看起来好像.我检查了提供的apk文件,它缺少库.libapk中没有文件夹.构建系统不会包含32位库.由于armv7这些库只有一个预建版本在app/src/main/jnilibs文件夹中.
我必须补充一点,这个设置适用于任何32位Android系统.我之前尝试过模拟器和物理设备.
如何使用gradle激活multiarch 32/64bit支持?或者如何使用Android Studio/gradle将32位应用程序部署到64位Android系统?
我在网上搜索了一个关于这个主题的链接,但它指的是旧的构建系统:https://source.android.com/source/64-bit-builds.html.我不知道如何采用描述来进行gradle.
我使用的是Android Studio(Build:141.1989493,2015年6月6日).该project/build.gradle是不变.该app/build.gradle文件如下所示:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "<application_name>"
minSdkVersion 1
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), …Run Code Online (Sandbox Code Playgroud) android 32bit-64bit android-ndk android-studio android-gradle-plugin