您的位置:首页 > 移动开发 > Android开发

Mac 下Android Studio JNI 制作so库

2017-04-29 14:10 344 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息