专栏首页KK的小酒馆NDK r17b 怎么运行mk老项目

NDK r17b 怎么运行mk老项目


虽然我也很想使用 cmake 去创建 ndk 项目,奈何 Android 官方文档和我买的开发书上对于 cmake 都显得资料过少,对于新手来说不利于快速学习整个功能

为了能够按照书上一步一步构建项目,嗯,打个比方,github上有个老ndk项目 ImageBlurring 可惜用最新的gradle-4.4 以及 NDK r17b 去运行,都会爆出不少错误,比如下面这个

> Error: Your project contains C++ files but it is not using a supported native build system.
Consider using CMake or ndk-build integration with the stable Android Gradle plugin:
 https://developer.android.com/studio/projects/add-native-code.html
or use the experimental plugin:
 http://tools.android.com/tech-docs/new-build-system/gradle-experimental.

当然也有gradle版本太低,跟如今写法大相径庭的部分,当然本篇关注点不在那,修改 blur/build.gradle 为以下内容

apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion '27.0.3'

    externalNativeBuild {
        ndkBuild {
            path "src/main/jni/Android.mk"
        }
    }

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 200
        versionName "2.0.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

主要关注的是blur内的externalNativeBuild标签,把这个标签曾经的ndk标签删除后,添加这样的标签即可,这样点击"Sync Now"后就完成了适配,很简单

哦哦,最后贴一下引用的方法是 stackoverflow 的大佬 stackoverflow

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 利用Gradle 的Kotlin DSL 搭建Tomcat项目(我是新手啊)

    为什么都是红的…………有时候等一会儿就不红了,有时候,需要关闭IDEA再启动,等Indexing,重建目录后才OK,Build Project啊,gradlew...

    爱因斯坦福
  • 用aliyun的Maven仓库下载Android Studio内依赖包

    从GitHub导入新项目时,总是在gradle运行中卡壳,各种依赖包无法从jcenter或者Maven仓库下载下来,公司网也差……一上午就这么废了。 如果你也...

    爱因斯坦福
  • technexion & NXP i.mx7d pico-pi 开发板刷机教程

    拿到谷歌到 Android Things 开发板数年了,大多数时间在积灰,偶尔刷成了 ubuntu 系统,玩腻了发现整个网络上都不存在这块开发板的 Androi...

    爱因斯坦福
  • NoC

    芯片顶端(北侧)包含了 AI 加速引擎阵列,它们主要用来加速机器学习和无线网络等应用中常见的数学计算。然而,关于 AI 引擎的具体结构,在这篇论文中并未提及。

    碎碎思
  • 四两拨千斤,GCC编译器(同余模) - HDU 3123

    同余这一属性看起来简单,然而却是数论中极为重要的概念。与之相关的公式和定理更是纷繁芜杂,如果不是数学背景的童鞋,恐怕很难深入去钻研所有的知识。

    ACM算法日常
  • python3学习之序列化

    json   可以处理python基本数据类型,字典,列表,元组,保存的文件是“明文的”

    py3study
  • 基于GitLab+Docker+K8S的持续集成和交付

    此文档主要说明怎样基于GitLab进行持续集成和持续交付,该持续集成与交付集成了gitlab-runner 、mvnw、Docker、harbor、k8s等技术...

    互扯程序
  • 独家 | 一文了解强化学习的商业应用2

    作者:Aishwarya Srinivasan, Deep Learning Researcher

    数据派THU
  • 三年java经验面试总结,整理了一些java面试题供参考

    答:最大区别是等待时wait会释放锁,而sleep会一直持有锁,wait通常用于线程时交,互,sleep通常被用于暂停执行。

    Java周某人
  • minikube中下载镜像错误Couldn't connect: SOCKS protocol error

    在启动 minikube 的时候使用的代理环境变量创建的 minikube 虚拟机,但是在下载或者查询镜像的时候会出错,比如下面两个命令都会报相似错误 "Cou...

    kongxx

扫码关注云+社区

领取腾讯云代金券