1、打开项目后,一次点击Tools>SDK Manager
 2、点击SDK Tools标签页
 3、选中NDK(Side by Side)和CMake复选框
 
 4、点击OK
 此时系统会显示一个对话框,告诉你NDK软件包占用了多少磁盘空间
 5、点击OK
 6、安装完成后,点击finish
 7、您的项目会同步build文件并执行构建,修改构建过程中所有的错误
 如果您想要使用SDK管理器未包含的CMake版本,请按以下步骤操作:
 1、从CMake官方网站下载并安装CMake
 2、在模块的build.gradle文件中指定您想要让gradle使用的CMake版本
 3、将CMake的安装路径添加到PATH环境变量,或将其添加到项目的local.properties文件中,如下所示。如果Gradle找不到您在build.gradle文件中指定的CMake版本,就会出现构建错误。
If you set this property, Gradle no longer uses PATH to find CMake.
cmake.dir = “path-to-cmake”
4.可以不安装,如果您尚未在工作站上安装Ninja构建系统,请访问Ninja官网 ,然后下载并安装适用于您的操作系统最新版Ninja。此外,请务必将Ninja的安装路径也添加到PATH环境变量。
 5、在local.properties的文件添加NDK的路径和SDK的路径
sdk.dir=C:\Users\admin\AppData\Local\Android\Sdk
ndk.dir=C:\Users\admin\AppData\Local\Android\Sdk\ndk
6、在Project Structure配置SDK和NDK的路径
 
 7、配置gradle.properties文件,输入图中红色框内的内容
 
 8、在build.gradle文件中ndk的模块
 
 9、指定android编译中c代码不用gradler编译,jniLib的库的加载目录
 
 10、目录的结构如图
 
 Application.mk和Android.mk
//Application.mk
APP_STL := c++_static
APP_CPPFLAGS := -frtti -fexceptions -std=c++0x
APP_ABI := arm64-v8a
APP_PLATFORM := android-19
//Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := playMusic
LOCAL_SRC_FILES := playMusic.so
include $(PREBUILT_SHARED_LIBRARY)
//上面的部分是指引用第三方so的配置
include $(CLEAR_VARS)
LOCAL_MODULE := tinyplayJni
LOCAL_SRC_FILES := com_aac_richtap_PlayMusic.cpp
LOCAL_LDLIBS += -llog
LOCAL_SHARED_LIBRARIES := playMusic
LOCAL_EXPORT_C_INCLUDES := src/main/jni
include $(BUILD_SHARED_LIBRARY)
11、以上配置完成后
 在Terminal终端输入ndk-build 出现下图所示就表示成功了
 
 12、最后一步就是使用System.loadLibrary将so加载到java代码
public class PlayMusic {
    public static native void setDeviceAndCard(int card,int device);
    public static native void playMusicByName(String name);
    static {
        System.loadLibrary("tinyplayJni");
    }
}
//在需要的activity中调用
 PlayMusic music = new PlayMusic();
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                music.setDeviceAndCard(3,0);
                Log.d("Main", "onClick: ");
            }
        });
最后留言:为了直接将java文件编译成jni的头文件可以在配置以上的环境之后使用
 输入命令javah -jni com.example.mr5.jnidemo.JniUtil --------包名+类名
如果报找不到该类的错误,用javah -classpath . -jni com.example.mr5.jnidemo.JniUtil。



















