ndk开发(一)环境搭建

本文详细介绍了在Android Studio ArticFox 2020.3.1 Patch3环境下配置NDK和CMake的过程,包括解决dl.google.com被屏蔽的问题,以及如何将普通项目改造成NDK项目。通过新建项目或改造现有项目,添加cpp文件夹、CMakeLists.txt文件,并修改build.gradle文件,实现Java与C/C++的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、配置NDK开发环境,本人开发环境(Artic Fox 2020.3.1 Patch 3)

遇到问题:

2、正常项目搭建

3、普通项目改造成ndk项目

在java同级目录创建cpp文件夹

在cpp目录new->C/C++ Source File native-lib

new->File CMakeList,添加CMakeList中的代码到此

添加build.gradle的代码


1、配置NDK开发环境,本人开发环境(Artic Fox 2020.3.1 Patch 3)

File->Settings->System Settings->Android SDK->右侧SDK tools->勾选NDK(side by side)、CMake

遇到问题:

dl.google.com被屏,导致不能获取到未下载的资源选项,找不到ndk和cmake,

此处获得解决方法

大概套路就是,查询dl.google.com的ip,从获取到的ip地址中ping一个可通的ip,配置到c->windosw->system32->drivers->etc下的hosts下,格式:ip地址 dl.google.com,例如:203.208.41.78 dl.google.com,添加进去即可,该问题得到解决,重启studio,获取到未下载的资源,勾选ndk、cmake,下载完毕确定。

2、正常项目搭建

file->new project->下拉找到Native C++->next ->改名->next。。。finish

成功后,项目中会自动在java同级目录生成cpp文件夹,

文件夹下自带CMakeList.txt(配置so库名字和其他属性的地方)、

native-lib.cpp(写native函数的地方),

build.gradle下多了两处代码:

android {
    ...
    defaultConfig {
        ...
        externalNativeBuild {
            cmake {
                cppFlags ''
            }
        }
    }

    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
            version '3.10.2'
        }
    }
}

3、普通项目改造成ndk项目

有了正常创建项目多出来那几个文件,普通项目改造也就不难了

第一篇ndk开发项目看的这里,所以我是从改造项目学起的,大概步骤如下:

  • 在java同级目录创建cpp文件夹

  • 在cpp目录new->C/C++ Source File native-lib

  • new->File CMakeList,添加CMakeList中的代码到此

cmake_minimum_required(VERSION 3.10.2)

project("myjniproject")

add_library(
         # Sets the name of the library.
        myjniproject

        # Sets the library as a shared library.
        SHARED

        # Provides a relative path to your source file(s).
        native-lib.cpp)


find_library( # Sets the name of the path variable.
        log-lib

        # Specifies the name of the NDK library that
        # you want CMake to locate.
        log)


target_link_libraries( # Specifies the target library.
        myjniproject

        # Links the target library to the log library
        # included in the NDK.
        ${log-lib})
  • 添加build.gradle的代码

android {
    ...
    defaultConfig {
        ...
        externalNativeBuild {
            cmake {
                cppFlags ''
            }
        }
    }

    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
            version '3.10.2'
        }
    }
}

改造完毕,接下来就是写native方法,跟java层交互了


扬帆

--

起航

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值