android - android 发布应用程序包构建缺少本机 lib .so 文件
问题描述
案子
我有一个应用程序
当我在调试模式下使用它时一切正常!
但是当我尝试构建用于发布的 apk 包并尝试通过 Play 商店安装应用程序时,由于缺少 .so 文件,我对 apk 进行了反向工程,但找不到单个 .so 文件或任何 lib 文件夹
但是当我使用 play console 和 android studio 分析包时,它包含所有带有相应 .so 文件的 abi 文件夹
这是我的应用程序 gradle 文件
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.test"
minSdkVersion 16
targetSdkVersion 28
versionCode 38
versionName "3.0.8"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// Enabling multidex support.
multiDexEnabled true
//render script
renderscriptTargetApi 28
renderscriptSupportModeEnabled true
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions"
arguments "-DANDROID_STL=c++_shared"
}
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
packagingOptions {
exclude 'META-INF/rxjava.properties'
exclude "lib/mips/libRSSupport.so"
exclude "lib/mips/librsjni.so"
}
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
}
dependencies {
//custom modules here
//libs and jars
implementation fileTree(include: ['*.jar'], dir: 'libs')
//other dependencies
}
apply plugin: 'com.google.gms.google-services'
这是一些图片
我无法截取整个页面,但它具有所有可能的 abis
错误
Fatal Exception: java.lang.UnsatisfiedLinkError
dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.test-1/base.apk"],nativeLibraryDirectories=[/data/app/com.test-1/lib/arm, /data/app/com.test-1/base.apk!/lib/armeabi, /vendor/lib, /system/lib]]] couldn't find "libnative-lib.so"
我都试过了
我尝试将 ndkFilters、splits、abis、禁用 progaurd 等放在 gradle 文件中
但没有运气
我想
播放控制台无法将库分发到相应的 abis
要求
任何人有任何线索请告诉我_/\_
谢谢你
解决方案
将以下内容添加到gradle.properties
,它应该会有所帮助:
android.bundle.enableUncompressedNativeLibs = false
推荐阅读
- javascript - 在javascript中拆分点或逗号
- javascript - 如何从文本中删除空格、标点和符号
- python - JIRA-Python 的基本身份验证不再适用于 REST API 调用。接下来是什么?
- java - 如何在 for 循环(数组)中的 if 语句中打印
- android - 使用 AndroidX 概述的 TextField
- java - 测试:MySQL和H2不兼容
- ios - 在 NativeScript 5.4 插件中使用静态 iOS 库
- symfony4 - symfony 4:表单提交后如何处理后退箭头
- javascript - cy.url 未按预期返回字符串
- docusignapi - 如果在创建信封之前未提供收件人信息(签名者),是否无法使用自动锚标签?