Mac 下Android Studio JNI 制作so库

1,安装jdk

2,安装Android Studio
打开AS时候building“project name”gradle project info卡死:先强制退出AS再下载https://services.gradle.org/distributions/gradle-3.3-all.zip好然后拷贝到这个地方

sudo cp ~/gradle-3.3-all.zip ~/.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc3hw9/

3,跟着视频https://www.youtube.com/watch?v=G0vL7-_xuDM写好代码

4,配置sdk与ndk路径

1,touch ~/.bash_profile
2,open ~/.bash_profile
加入:
export ANDROID_SDK="/Users/kylefan/Library/Android/sdk"
export ANDROID_NDK="/Users/kylefan/Library/Android/sdk/ndk-bundle"
export PATH="$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$ANDROID_NDK"

其中两个路径可以在Android Studio-File-Project Structure这里找到

5,打开Android Studio的Terminal

ndk-build

6,引入opencv3.2.0,下载安卓的opencv解压开,AS的File-New-Import module添加opencv/sdk/java的路径,会报错,要把OpenCVLibrary文件夹的build.gradle里面的
1)compileSdkVersion
2)buildToolsVersion
3)minSdkVersion
4)targetSdkVersion
将其内容与app文件夹下的build.gradle中信息相一致,如下图红线标出的的第1与第2两个build.gradle,不是第三个
这里写图片描述

7,点击File-Project Structure,左边Modules 下找到你的项目,点右边Dependencies,点下面加号,选择3-module dependency,选择opencv点确定

8,在app-src-main-java-com右击新建java class

package com.example.kylefan.pano;
public class OpencvClass {
    public native static void stitchimage(long addrRgba);
}

9,打开AS的terminal,

cd app/src/main/
javah -d jni -classpath ../../build/intermediates/classes/debug/ Tracker.Tracker

debug路径后面带个斜杠(这里都试一下,不确定)
生成对应的h文件,然后复制出一个cpp文件。

10,Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=SHARED

include /Users/kylefan/Downloads/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk


LOCAL_SRC_FILES  := pano.cpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)
#LOCAL_LDLIBS     += -llog -ldl

LOCAL_MODULE     := pano

include $(BUILD_SHARED_LIBRARY)

Application.mk:

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions

APP_MODULES :=pano

APP_ABI := all
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值