Eclipse转Android Studio-NDK开发

将一个jni的工程转到Android Studio:

原来工程是在Eclipse的ndk环境下开发的,现在要转移到Android Studio中:

一、先安装NDK

打开Android Studio,从菜单栏选择 Tools > Android > SDK Manager。
点击 SDK Tools 标签,
选中 NDK 旁的复选框,
点击 Apply,然后在弹出式对话框中点击 OK。
安装完成后,点击 Finish,然后点击 OK。

下面这步似乎不是必须的,为了保险起见,我也操作了:
在windows的系统环境变量 PATH 下增加路径 :

F:\android\sdk1\ndk-bundle (这是我的ndk路径,Android Studio默认就是安装在sdk路径下的)

二、找到原Eclipse工程,导入

File->New->import Project

如果原工程拷贝过来了,通常会在目录名后添加个1进行区别。
为了避免这种别扭的命名,可以先存放在别的路径下,然后导入,这样能保持工程名不变。

导入后的样子如下,注意其中有个cpp目录,这是与普通Android Studio工程最大的区别:
这里写图片描述

可以在工程根路径下的local.properties看到如下内容:

ndk.dir=F\:\\android\\sdk1\\ndk-bundle
sdk.dir=F\:\\android\\sdk1

如果发现不对,可以先删除掉,然后点击工具栏中的 Sync Project ,Android Studio就会自动更新为合适的配置。
如果ndk是手动安装的,那么就需要自己输入相应的路径了。

三、导入完成,那就开始编译吧!

还是遇到问题了:
1,汉字乱码错误:
Error:(26, 6) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?
分析:看见汉字乱码,就进行编码格式的转换:先reload为GBK,汉字显示正常,再convert为utf8,ok了。
这里只是简单一说,更详细的步骤说明,可以参考这里:
http://blog.csdn.net/lintax/article/details/53325913

2,C++文件编译配置问题:

Error:Execution failed for task ':app:compileDebugNdk'.
> Error: Your project contains C++ files but it is not using a supported native build system.
Consider using CMake or ndk-build integration with the stable Android Gradle plugin:
 https://developer.android.com/studio/projects/add-native-code.html
or use the experimental plugin:
 http://tools.android.com/tech-docs/new-build-system/gradle-experimental.

既然给出了网址让看看,那就去看看吧:
https://developer.android.com/studio/projects/add-native-code.html
一查看,内容都已经是中文了,真是太方便了!
《向您的项目添加 C 和 C++ 代码》 查看这一节“将 Gradle 关联到您的原生库”:

使用 Android Studio UI
您可以使用 Android Studio UI 将 Gradle 关联到外部 CMake 或 ndk-build 项目:
从 IDE 左侧打开 Project 窗格并选择 Android 视图。
右键点击您想要关联到原生库的模块(例如 app 模块),并从菜单中选择 Link C++ Project with Gradle。您应看到一个如图 4 所示的对话框。
从下拉菜单中,选择 CMake 或 ndk-build。
如果您选择 CMake,请使用 Project Path 旁的字段为您的外部 CMake 项目指定 CMakeLists.txt 脚本文件。
如果您选择 ndk-build,请使用 Project Path 旁的字段为您的外部 ndk-build 项目指定 Android.mk 脚本文件。如果 Application.mk 文件与您的 Android.mk 文件位于相同目录下,Android Studio 也会包含此文件。

那么我的操作就是:
右键点击app模块,并从菜单中选择 Link C++ Project with Gradle。
从下拉菜单中,选择 ndk-build。
使用 Project Path 旁的字段为 ndk-build 项目指定 Android.mk 脚本文件。路径为src\main\jni\Android.mk”

此时查看,在Module的build.gradle的android项中有如下配置:

externalNativeBuild {
        ndkBuild {
            path file("src\\main\\jni\\Android.mk")
        }
    }

然后编译运行,ok了。

在如下路径有生成的库文件:

PictureProcess\app\build\intermediates\ndkBuild\debug\obj\local\armeabi\libPictureProcess.so

demo:

我将之前的一个Eclipse下的做图像处理的ndk例子,见如下地址:
http://download.csdn.net/detail/lintax/9565857
转换为Android Studio工程了,见:
http://download.csdn.net/detail/lintax/9758091

猜你喜欢

转载自blog.csdn.net/lintax/article/details/55807203