1.Android.mk 

LOCAL_PATH := $(call my-dir)#链接动态so库时,需要预编译才可以链接include $(CLEAR_VARS)LOCAL_MODULE := PicDetectLOCAL_SRC_FILES := prebuilt/libPicDetect.soLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/prebuiltinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE    := picdetect-jniLOCAL_SRC_FILES := org_hik_PicDetect.cppLOCAL_SHARED_LIBRARIES := libPicDetectLOCAL_LDLIBS := -lc -lm -lstdc++ -llogLOCAL_CPP_FEATURES += exceptions                #NDK 编译器的 C++ 异常控制特性支持默认是关闭的,添加该行命令,便可以打开异常控制特性include $(BUILD_SHARED_LIBRARY)

 2.Application.mk

APP_OPTIM := releaseAPP_PLATFORM := android-9APP_STL := c++_staticAPP_CPPFLAGS += -fexceptions -std=c++11 -frtti#APP_GNUSTL_FORCE_CPP_FEATURES := exceptions rtti

3.build.gradle

apply plugin: 'com.android.application'//生成apk//apply plugin: 'com.android.library'//生成so和jar包,不生apkandroid {    compileSdkVersion 25    buildToolsVersion '26.0.2'    defaultConfig {        applicationId "org.hik.picture"  //生成apk时要指定应用id        minSdkVersion 21        targetSdkVersion 23        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        ndk{            moduleName "picdetect-jni" //lib的名称,对应LOCAL_MODULE            ldLibs "log", "z", "m"  //链接时使用到的库,对应LOCAL_LDLIBS *注意ldLibs "log"一行,由于在test.c中#include "android/log.h",所以必须把log.h包含进来。             abiFilters "x86_64"//"x86_64"//"arm64-v8a"//"x86"//指定某种架构的CPU的so文件//"arm64-v8a","armeabi-v7a",            //cFlags 编译gcc的flag,对应LOCAL_CFLAGS        }//        externalNativeBuild {//            cmake {//                abiFilters 'arm64-v8a'//,'arm64-v8a'//                //abiFilters 'arm64-v8a'//                cppFlags "-frtti -fexceptions"//            }//        }    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    sourceSets.main{        jni.srcDirs = []//disable automatic ndk-build call 屏蔽gradle自动生成Android.mk        jniLibs.srcDirs = ['libs']//这个脚本的意思是把app下的libs文件夹,当成原本/src/main下的jniLibs文件夹,这样就可以加载so库了。    }    externalNativeBuild{        ndkBuild{            path "src/main/jni/Android.mk"        }    }//    externalNativeBuild {//        cmake {//            path 'CMakeLists.txt'//        }//    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:appcompat-v7:25.2.0'}

 

更多相关文章

  1. Android Studio 打不开layout 文件夹下的xml
  2. android 创建文件夹和文件
  3. Android开发常用工具查询网站链接
  4. Android Market 链接的生成与分享
  5. android 5.0新特性学习--Drawable Tinting(为图片资源着色)
  6. Android 链接 java 服务无法打开链接的问题
  7. android(drawable文件夹)图片适配
  8. android 学习文章收藏(链接)
  9. Android 5.0 6.0 7.0 8.0 9.0新特性总结

随机推荐

  1. 刚升级没多久,fastjson又漏洞了,改换jackso
  2. MySQL的EXPLAIN其实很简单
  3. 谈谈有关模版模式及设计原则
  4. MySQL 数据库事务及隔离级别,多版本控制
  5. 简单写一个失败重试的方法
  6. 第七周-计算机网络技术
  7. 计算1+...+100
  8. rem 、em、vh、 vw
  9. JavaScript初学习之赋值、传参、模板字面
  10. 为CentOS7和CentOS6配置yum