当前位置: 首页 > article >正文

关于在 Kotlin DSL 中,ndk 的配置方式

在 Kotlin DSL 中,ndk 的配置方式有所不同,取决于 Android Gradle 插件版本。ndk { abiFilters(…) } 在 Kotlin DSL 中实际上是 externalNativeBuild 的一部分,需要通过正确的上下文调用。

错误代码:

ndk {
    abiFilters("arm64-v8a")
}

直接调用 ndk,没有合适的上下文,可能会导致 Unresolved reference 错误。

修复方法

方法 1:在 defaultConfig 中配置 ABI 筛选器

abiFilters 通常是在 defaultConfig 块内设置的,你可以将代码调整如下:

android {
    defaultConfig {
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        ndk {
            abiFilters += "arm64-v8a"
        }
    }
}

或者,使用完整的 abiFilters 列表:

android {
    defaultConfig {
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

        ndk {
            abiFilters += listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64")
        }
    }
}
方法 2:配置 splits.abi(更灵活的方式)

如果你希望控制 APK 的 ABI 分裂(例如生成特定 ABI 的 APK),可以使用 splits 配置:

android {
    splits {
        abi {
            enable = true
            reset()
            include("arm64-v8a", "armeabi-v7a", "x86", "x86_64")
            universalApk = false // 不生成通用 APK
        }
    }
}
方法 3:使用 externalNativeBuild

如果你的项目使用 CMake 或 ndk-build,可以在 externalNativeBuild 块中配置:

android {
    externalNativeBuild {
        cmake {
            abiFilters.addAll(listOf("arm64-v8a", "armeabi-v7a"))
        }
    }
}

总结

如果只是简单筛选 ABI,推荐方法 1,将 abiFilters 放在 defaultConfig 中。
如果需要更复杂的 ABI 分裂控制,使用方法 2。
如果项目使用 CMake 或 ndk-build,则选择方法 3


http://www.kler.cn/a/507982.html

相关文章:

  • 在 macOS 上,用命令行连接 MySQL(/usr/local/mysql/bin/mysql -u root -p)
  • JWT在线解密/解码 - 加菲工具
  • 基于YOLOv8与CGNet的鸟类智能识别系统 深度学习图像分类 鸟类目标检测与分类 图像特征提取 模型优化与应用 数据可视化(源码+指导+定制)
  • 16_Redis Lua脚本
  • 总结SpringBoot项目中读取resource目录下的文件多种方法
  • 恩山论坛任务python脚本
  • Windows重装后NI板卡LabVIEW恢复正常
  • Linux内核编程(二十一)USB应用及驱动开发
  • Leetcode3097:或值至少为 K 的最短子数组 II
  • C 语言运算符的优先级和结合性
  • 解答二重积分
  • 智能化量化模型的前沿探索:中阳的崛起
  • [BrainShadow-V1] VR头戴设备统计报告
  • 分布式系统、微服务、SOA初步理解
  • ubuntu设置代理服务器
  • “深入浅出”系列之设计模式篇:(0)什么是设计模式
  • Objective-C语言的数据类型
  • windows蓝牙驱动开发-BLE音频(一)
  • Linux测试处理fps为30、1920*1080、一分钟的视频性能
  • BGP边界网关协议(Border Gateway Protocol)概念、邻居建立
  • 【西藏乡镇界面】图层arcgis格式shp数据有乡镇名称和编码2020年wgs84坐标内容测评
  • C++/C语言判断重复数组(zznu)⭐
  • Java算法 二叉树入门 力扣简单题相同的树 翻转二叉树 判断对称二叉树 递归求二叉树的层数
  • 刷题记录 回溯算法-16:47. 全排列 II
  • 从玩具到工业控制--51单片机的跨界传奇【3】
  • NLP入门书籍《掌握NLP:从基础到大语言模型》免费下载pdf