Mat*_*olz 9 android 32bit-64bit android-ndk android-studio android-gradle-plugin
我的问题是针对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'),
'proguard-rules.pro'
}
debug {
debuggable true
}
}
productFlavors {
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
}
fat
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)
为了在 64 位 Android 系统上部署 32 位应用程序,需要定义一个armv7 productFlavor在文件夹内定义一个子文件夹jniLibs,命名相应的架构。
产品风味定义app/build.gradle:
android {\n productFlavors {\n armv7 { ndk { abiFilter "armeabi-v7a" } }\n fat\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n本机库结构:\xe2\x80\xaf
\n\napp/src/main/jniLibs/armeabi-v7a\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |