【问题标题】:Android studio: Build -> Build APK(s) vs Run app (play button)Android 工作室:构建 -> 构建 APK 与运行应用程序(播放按钮)
【发布时间】:2021-06-19 23:19:23
【问题描述】:

我是 Android Studio 的新手,我想知道使用 Build -> Build APK(s) 生成的 APK 与使用“播放”按钮 (Ctrl+F5) 生成的 APK 之间的区别。

问题如下:我正在使用一些本机库,并且在使用 Ctrl+F5(播放按钮)进行调试时,由于找不到该库,我得到了 UnsatisfiedLinkError。事实上,如果我打开 APK(构建 -> 分析 APK),我会看到没有“lib”文件夹,所以没有 .so lib。

但是,当我构建 -> 构建 APK,然后分析这个新 APK 时,我可以看到包含所有 .so 库的“lib”文件夹。然后,如果我将这个 APK 复制到我的手机中并安装该应用程序,一切正常(我使用 Native Libs Monitor,它可以识别里面的原生库)。

当然我不能每次都这样做,所以我正在寻找差异,以便我能够理解为什么在第一种情况下没有在 apk 中创建库。

【问题讨论】:

    标签: android android-studio apk unsatisfiedlinkerror android-native-library


    【解决方案1】:

    简单的解释是构建.apk 使您的项目将所有代码生成到一个文件(.apk)中,然后可以在Android 上打开和安装。 如果运行类似于“播放按钮”的方式运行您的项目,您无需先安装 .apk 文件,这当然会让您作为开发人员更轻松。

    如果有错误问题,请在问题中附上错误信息,最好以截图的形式附上。

    【讨论】:

    • 好的,我明白了。因为起初我认为它是发布/调试构建,但它没有任何意义。无论如何,现在我通过在 build.gradle 的 defaultConfig 中添加 ndk { abiFilters 'armeabi' } 解决了这个问题。这应该会强制 apk 管理器将 lib 文件夹放入其中,但我不能 100% 确定它是如何工作的。尽管如此,它仍然有效,所以我不会抱怨。谢谢
    猜你喜欢
    • 2019-07-25
    • 2022-09-30
    • 2018-08-29
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多