【问题标题】:How to find native code in a Cordova - Android Project如何在 Cordova 中查找本机代码 - Android 项目
【发布时间】:2019-08-28 12:23:36
【问题描述】:

我正在定制 SAP 的 Fiori Client,它是一个 Apache Cordova 应用程序。我向其中添加了一个外部库(.aar)并重建了 android 项目。我可以在我的设备中使用生成的 APK。当我将此应用程序(apk)上传到 Google Play 时,它拒绝上传为“该应用程序不符合 64 位要求”。我的 Gradle 版本 - 2.14.1

当我分析生成的 APK 文件时,它在 lib amreabi-v7a & x86 下有 2 个文件夹,在这些文件夹下我可以看到 3 个 .so 文件。 APK Analyze - LIB Folder

我没有在整个项目中编写任何 C/C++ 代码。我只写了 Java 和 JavaScript 代码(用于 Cordova)。
我的问题是如何从这些 .So 文件中回溯本机代码?我应该如何生成 apk(或 App bundle)以便我可以成功上传到 Google Play。

警告:我不是 Android 开发人员,但在 StackOveFlow 的其他问答中设法做到了。

【问题讨论】:

    标签: android cordova android-studio 64-bit native


    【解决方案1】:

    我认为不是原生代码,而是默认构建 32 位和 64 位 ABI 的构建规则。您是否有权访问应用程序和/或 aar 的源?如果是这样,请查看 build.gradle 文件,并通过在下面列出的范围内引入 abiFilter 来限制 32 位构建。

    android {
        defaultConfig {
            ndk {
                 // Tells Gradle to build only arm64 and x86 64 ABIs and package
                 // them into your APK/library.
                abiFilters 'x86_64', 'arm64-v8a'
           }
        }
    }
    

    我应该补充一点,对于cordova 应用程序,构建规则很可能位于cordova 项目目录中名为build-extras-app.gradle 的文件中。这个文件将与cordova自己的规则一起被注入到android/app/build.gradle文件中来构建应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-29
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      相关资源
      最近更新 更多