当前位置: 首页 > 知识库问答 >
问题:

android发布应用程序包生成缺少本机库。所以文件

薛钧
2023-03-14

案例

我有个应用

当我在调试模式下使用它时,一切都好!

但当我尝试构建apk捆绑包以供发布,并尝试通过play store安装应用程序时,却缺少了一个。因此,我对apk进行了反向工程,却找不到任何文件。所以文件或任何库文件夹

但是当我使用play console和android studio分析包时,它包含了所有abi文件夹和相应的文件。所以文件

这是我的应用程序渐变文件

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"

我都试了些什么

我已经试着把NDKfilter、splits、abis、禁用progaud等放到gradle文件中

但运气不好

我想

play console无法将lib分发到相应的ABI

要求

任何人有任何线索,请告诉我_/\_

非常感谢。

共有3个答案

左丘耀
2023-03-14

试试这个:

sourceSets.main.jniLibs.srcDirs = ['src/main/jniLibs']
子车劲
2023-03-14

使用abifFilters从捆绑包中删除过时的ABIs。您不需要armeabimips

也许,你试图在设备上安装一个armeabi分裂。这样做的问题是armeabi拆分确实存在(它包含一些依赖项的库),但是较新的NDK没有构建这种libnative-lib.so的变体。

空成天
2023-03-14

将以下内容添加到gradle。属性,它应该有助于:

android.bundle.enableUncompressedNativeLibs = false

 类似资料:
  • 我正在尝试使用expo客户端在iphone上发布我的应用程序。当我将链接从我的mackbook发送到iphone时。我收到一个错误,说“加载请求的应用程序时出现问题。看起来您可能正在使用LAN URL。确保您的设备与服务器位于同一网络上或尝试使用隧道。”我在同一个网络上。我检查了两次网络。这些是我遵循的步骤1)我通过在终端窗口中给出“npm start”命令来启动应用程序。2)我选择选项“s”,然

  • 我正在发布一个应用程序使用新的应用程序捆绑格式(aab)。该应用程序包括一些Armeabi-V7A的本地库。当我通过Google Play在arm64-v8a架构上安装应用程序时,它不包括没有arm64-v8a so文件的本地库。 根据https://stackoverflow.com/a/39622499/534471,armeabi-v7a库应该运行在arm64-v8a设备上(通过adb安装时

  • 我正在尝试使用GraalVM和本机映像构建本机应用程序。启动生成过程时出错。类路径中似乎缺少cl.exe。就像GraalVM网站上提到的那样,我已经安装了“GRMSDKX\u EN\u DVD.iso”(适用于Windows 7和.NET的Windows SDK)。我还尝试安装Windows SDK for Windows 10。 我使用的是windows 10,graalvm-ce-java8-

  • npm错误!此运行的完整日志可以在:npm err!C:\users\ttopo\appdata\roaming\npm-cache_logs\2020-11-20t07_58_40_339z-debug.log` 0信息如果它以ok结束就可以工作1详细cli[1详细cli'c:\program Files\nodejs\node.exe',1详细cli'c:\program Files\node

  • 我已经编写了一个混合应用程序,它使用react原生svg在react原生视图中呈现svg图像。一切都很完美。今天,当我为我的应用程序创建release apk并将其部署到模拟器时,它崩溃了,出现了一个错误: 只有当我从proguard规则中注释时,我才会看到这个问题。专业文件。我想混淆我的apk代码(我无法控制)。我使用的proguard文件与本例中显示的类似,https://github.com

  • 屏幕截图真实设备 一加六 我的应用程序/构建。格拉德尔 我的顶级身材。梯度锉 我package.json依赖 采取步骤解决: 尝试使用与下面链接中建议的“com.google.firebase:firebase core”和“com.google.firebase:firebase messaging”相同版本的依赖项(17.0.0)。 没有类定义错误:java。lang.NoClassDefFo