由于做Android在底层有库的时候需要交叉编译环境,c代码需要用ndk-build来进行编译,而java代码则需要用Android sdk编译。之前由于对eclipse ide不太熟悉,所以往往编译的时候都是在记事本里写好c代码,然后用cygwin搭建ndk-build环境,用ndk-build来编译出相关的so 之后再用eclipse里去编译java程序,从而使用该so。
其实并不用这么复杂,利用eclipse完全可以达到编译so的目的
点击project->builders->new->Program
然后选择Location
在windows下为
D:\Android\ndk\ndk\ndk-r7-windows\ndk-build.cmd
在linux和mac下为可执行的ndk-build路径
然后选择
Working Directory
D:\Android\ndk\ndk\android-ndk-r6b\samples\<your jni project name>
选择到您对应的jni路径,然后在我们编译运行的时候,这个builder就会自动地去编译so库,而sdk会去编译java代码,实现利用eclipse实现交叉编译
如果还有疑问,可以看这篇文章
http://mobilepearls.com/labs/ndk-builder-in-eclipse/
Setting up Automatic NDK Builds in Eclipse
When editing native JNI code in an Android project using the Android NDK you may configure Eclipse to automatically rebuild your project when editing native code, just
as it does for java. The below steps shows how to perform the necessary configuration (note that this requires revision 4 or later of the NDK – previous revisions does not contain the necessary ndk-build
binary):
Start by right clicking on your android project (named hello-neon in the below screenshots) with JNI resources, and select Properties
. In the resulting dialog, choose the Builders
entry in the list to the left and press the New...
button:
A new dialog will open presenting a list of builder types. Select the Program
type and press the OK
button:
In the Main
tab, fill in the following:
- Name:
- NDK Builder
- Location:
- /opt/android-ndk/ndk-build (or wherever your ndk-build binary is). You may use a variable as in ${system_property:user.home}/lib/android-ndk/ndk-build
- Working Directory:
- ${workspace_loc:/hello-neon} (replace hello-neon with your project name. Press the
Browse Workspace...
button to select it graphically)
The result should look something like the below:
Now continue with the refresh tab. Make sure the two checkboxes Refresh resources upon completion.
and Recursively include sub-folders
are checked. Choose the Specific resources
radio button and press the Specify
button:
Resources...
Since the ndk-build process will generate files in the lib folder, we want Eclipse to discover changes made there without having to refresh manually. So select the lib folder in the project (create one if necessary) and press the Finish
button:
Now skip the Environment
tab and go to the final Build Options
tab. Make sure the Run the builder: During auto builds
checkbox is checked.
Since the NDK build only needs to happen when editing files in the jni
folder, check that folder and press the Finish
button.
Now finally press OK
in the builder configuration dialog – the new NDK builder should now be up and running. Try editing any file in the jni
folder and check that the Console
view produces output from the build process:
Contact support@mobilepearls.com for feedback