zoukankan      html  css  js  c++  java
  • android studio: 为现有项目添加C++支持

    刚开始创建项目的时候并没有勾选“include C++ support” 选项:

    后期增加步骤:

    1.拷贝已有支持C++项目的CMakeLists.txt文件到现有项目的app目录下;

    2.在app/src/main 目录下新建cpp文件夹;

    3.修改app目录下的build.gradle文件,分别在defaultConfig的大括号和android的大括号中添加“externalNativeBuild”项:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 28
        defaultConfig {
            applicationId "com.yongdaimi.android.ffapitest"
            minSdkVersion 19
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            externalNativeBuild {
                cmake {
                    cppFlags "-std=c++11"
                }
                ndk {
                    abiFilters "armeabi-v7a"
                }
            }
            sourceSets {
                main {
                    jniLibs.srcDirs=['libs']
                }
            }
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
        externalNativeBuild {
            cmake {
                path "CMakeLists.txt"
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:28.0.0'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }

     最后同步一下gradle文件就好了,

    注意:

    1.ndk abiFilters 以及 sourceSets 不是必须的,我是因为引用了别的类库所以才加的这两句话。

    2.最好先在native-lib.cpp中添加好对应的测试JNI方法,否则在Activity中新写的native方法点击创建无法生成到native-lib.cpp文件中去,不知道为什么。

  • 相关阅读:
    【sql:练习题3】查询在 SC 表存在成绩的学生信息
    【sql:练习题2】查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
    学习设计模式之动态代理
    学习设计模式之静态代理
    学习设计模式之装饰器模式
    学习设计模式之策略模式
    学习设计模式之简单工厂
    Ehcache3.x学习(二)分层的选项
    Ehcache3.x学习(一)入门
    java进行微信h5支付开发
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/11082995.html
Copyright © 2011-2022 走看看