打算将先前写的一个OBJ模型查看工具objViewer应用在Android平台上,借此了解一下Android平台的开发。现在做到了运行 NDK samples,将这中间遇到的问题记录一下。

Android环境

系统: Mac OS 10.11.1

JDK: java version "1.8.0_65"

IDE: Android Studio 1.5.1

Android SDK: r24.4.1

JDK是系统自带的,其他的是官网下载的。按照说明一步步安装就是,被墙困住的可以百度一下,教程很多。我将下载的包放在了百度云上,下载请点击

android mac studio环境搭建 mac android studio配置_Android

NDK

配置

下载安装说明还是首推官网,不过很可惜还是被墙。NDK下载可以从上面的云盘中获得,中文指导可以看下面的两个链接:

可能遇到的问题

按上面配置说的运行例子,可能会遇到一些问题,下面按照我遇到的顺序说一下:

NDK插件错误

android mac studio环境搭建 mac android studio配置_android_02

解决方法: 在项目根目录下创建配置文件gradle.properties,里面加入

android.useDeprecatedNdk=true

然后点击下图所示按钮,重新启动Gradle同步即可。

android mac studio环境搭建 mac android studio配置_本地库_03

NDK位置未指定

解决方法: 重新指定NDK位置,方法有二 1. 点击错误提示中的Select NDK,通过对话框选择 2. 在根目录的local.properties文件中添加

ndk.dir=/Users/charlyzhang/AndroidStudioProjects/android-ndk-r10e (NDK位置)

连接不上本地库

这个问题发生在例子hello-gl2中,Gradle同步没有问题,可连机编译时出现如下错误:

android mac studio环境搭建 mac android studio配置_android_04

显然是没有连接上Native Lib。 网上有人说:

在Android.mk中添加以下代码

LOCAL_LDLIBS := -llog -lGLESv2

没有解决我的问题,官方例子中已做好了这一步,问题依然在。

后来找到两个可行的解决方法,两个都是修改app文件夹下的build.gradle文件:

将**android{...}中的defaultConfig {...}**修改,添加如下连接信息:

android mac studio环境搭建 mac android studio配置_android_05

编译JNI本地库,再在**android{...}**中添加如下本地库重定位信息:

android mac studio环境搭建 mac android studio配置_本地库_06

编译JNI本地库也可以采用两种方式:

手动编译:命令行进入app/src/main/jni文件夹,输入ndk-build命令;(这与导入例子后在根目录用ndk-build命令构建工程不是一步)

自动编译:在build.gradle文件的最后,**android{...}**以外添加如下代码:

task ndkBuild(type: Exec) {
commandLine 'ndk-build', '-C',file('src/main/jni').absolutePath
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}

参考