Android studio 利用cmake编译和使用so文件

在Android Studio中使用CMake编译和使用.so文件,你需要执行以下步骤:

1.在CMakeLists.txt文件中指定你的.so文件。

2.在build.gradle文件中配置CMake构建脚本。

3.同步项目,让Gradle和CMake生成相应的Native库。

以下是一个简单的例子:

步骤1: 创建CMakeLists.txt

在你的项目的CMakeLists.txt文件中,添加你的.so文件。假设你的.so文件名为libexample.so,位于src/main/jniLibs/armeabi-v7a/目录下:

cmake_minimum_required(VERSION 3.4.1)

add_library( lib_example SHARED IMPORTED )

set_target_properties( lib_example

PROPERTIES IMPORTED_LOCATION

${CMAKE_SOURCE_DIR}/src/main/jniLibs/armeabi-v7a/libexample.so )

add_executable( your_app_name main.cpp )

target_link_libraries( your_app_name

lib_example )

步骤2: 配置build.gradle

在你的build.gradle文件中,确保你有以下配置:

android {

...

defaultConfig {

...

ndk {

// Specifies the ABI configurations of your native

// libraries Gradle should build and package with your APK.

abiFilters 'armeabi-v7a', 'x86'

}

}

externalNativeBuild {

cmake {

path "CMakeLists.txt"

}

}

...

}

dependencies {

...

}

tasks.withType(JavaCompile) {

compileTask -> compileTask.dependsOn 'ndkBuild'

}

tasks.withType(JavaCompile) {

compileTask -> compileTask.dependsOn 'ndkBuild'

}

task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {

commandLine "$projectDir/../ndk-build",

'-C', file('src/main').absolutePath,

'all', 'NDK_DEBUG=1'

}

步骤3: 同步项目

在Android Studio中,点击Tools -> Android -> Sync Project with Gradle Files,让Gradle和CMake根据你的配置生成相应的构建文件和库文件。

完成这些步骤后,CMake会编译你的.so文件,并且在应用构建过程中将其打包到APK中。在Java代码中,你可以使用System.loadLibrary("example")来加载这个.so文件。

相关推荐
Kapaseker7 小时前
你不看会后悔的2025年终总结
android·kotlin
alexhilton10 小时前
务实的模块化:连接模块(wiring modules)的妙用
android·kotlin·android jetpack
ji_shuke10 小时前
opencv-mobile 和 ncnn-android 环境配置
android·前端·javascript·人工智能·opencv
sunnyday042612 小时前
Spring Boot 项目中使用 Dynamic Datasource 实现多数据源管理
android·spring boot·后端
幽络源小助理13 小时前
下载安装AndroidStudio配置Gradle运行第一个kotlin程序
android·开发语言·kotlin
inBuilder低代码平台14 小时前
浅谈安卓Webview从初级到高级应用
android·java·webview
豌豆学姐14 小时前
Sora2 短剧视频创作中如何保持人物一致性?角色创建接口教程
android·java·aigc·php·音视频·uniapp
白熊小北极14 小时前
Android Jetpack Compose折叠屏感知与适配
android
HelloBan14 小时前
setHintTextColor不生效
android
ChangYan.14 小时前
VSCode终端设置为管理员权限,解决operation not permitted问题
ide·vscode·编辑器