运行android-cmd.bat,使用cd命令切换到samples/hello-jni目录下,
运行android update project -p . -s,会生成build.xml文件,用于ant命令,要注意的是,编译的时候会发生错误,提示:
Error: The project either has no target set or the target is invalid.
Please provide a --target to the 'android.bat update' command.这个时候,可以使用android list targets命令来查看当前系统中的android模拟器,我有两个,如下:
I:\android\android-ndk-r7c\samples\native-activity>android.bat list targets
Available Android targets:----------id: 1 or "android-8" Name: Android 2.2 Type: Platform API level: 8 Revision: 1 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854 ABIs : armeabi----------id: 2 or "android-10" Name: Android 2.3.3 Type: Platform API level: 10 Revision: 2 Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854 ABIs : armeabi如果没有的话,需要使用SDK的AVD Manager来创建一个就可以了.而我使用的是android 2.3.3的模拟器,所以我的编译命令是:
I:\android\android-ndk-r7c\samples\native-activity>android update project -p . -
t android-10 -sUpdated and renamed default.properties to project.propertiesUpdated local.propertiesNo project name specified, using Activity name 'NativeActivity'.If you wish to change it, edit the first line of build.xml.Added file I:\android\android-ndk-r7c\samples\native-activity\build.xmlAdded file I:\android\android-ndk-r7c\samples\native-activity\proguard.cfg从上面看出,已经生成了build.xml文件了.
运行ant debug命令,输出如下:
I:\android\android-ndk-r7c\samples\hello-jni>ant debug
Buildfile: I:\android\android-ndk-r7c\samples\hello-jni\build.xml-set-mode-check:
-set-debug-files:
-set-debug-mode:
-debug-obfuscation-check:
-setup:
[echo] Gathering info for HelloJni... [setup] Android SDK Tools Revision 16 [setup] Project Target: Android 2.2 [setup] API level: 8 [setup] [setup] ------------------ [setup] Resolving library dependencies: [setup] No library dependencies. [setup] [setup] ------------------ [setup] [setup] WARNING: Attribute minSdkVersion in AndroidManifest.xml (3) is lower than the project target API level (8)-build-setup:
[echo] Creating output directories if needed...-pre-build:
-code-gen:
[echo] ---------- [echo] Handling aidl files... [aidl] No AIDL files to compile. [echo] ---------- [echo] Handling RenderScript files...[renderscript] No RenderScript files to compile. [echo] ---------- [echo] Handling Resources... [aapt] Found Deleted Target File [aapt] Generating resource IDs...-pre-compile:
-compile:
[javac] Compiling 2 source files to I:\android\android-ndk-r7c\samples\hello-jni\bin\classes-post-compile:
-obfuscate:
-dex:
[dex] Converting compiled files and external libraries into I:\android\android-ndk-r7c\samples\hello-jni\bin\classes.dex...-crunch:
[crunch] Crunching PNG Files in source dir: I:\android\android-ndk-r7c\samples\hello-jni\res [crunch] To destination dir: I:\android\android-ndk-r7c\samples\hello-jni\bin\res [crunch] Crunched 0 PNG files to update cache-package-resources:
[aapt] Creating full resource package... [aapt] Warning: AndroidManifest.xml already defines debuggable (inchemas.android.com/apk/res/android); using existing value in manifest.-package:
[apkbuilder] Current build type is different than previous build: forced apkbuilder run.[apkbuilder] Creating HelloJni-debug-unaligned.apk and signing it with a debug key...-do-debug:
[zipalign] Running zip align on final apk... [echo] Debug Package: I:\android\android-ndk-r7c\samples\hello-jni\bin\HelloJni-debug.apkdebug:
[propertyfile] Creating new property file: I:\android\android-ndk-r7c\samples\hello-jni\bin\build.prop[propertyfile] Updating property file: I:\android\android-ndk-r7c\samples\hello-jni\bin\build.prop[propertyfile] Updating property file: I:\android\android-ndk-r7c\samples\hello-jni\bin\build.prop[propertyfile] Updating property file: I:\android\android-ndk-r7c\samples\hello-jni\bin\build.propBUILD SUCCESSFUL
Total time: 5 seconds从上面,可以看出,生成了HelloJni-debug.apk,那么使用adb命令安装到当前的虚拟机上就可以了.
运行adb install bin/HelloJni-debug.apk命令,如果出现:error: device not found,说明你的android模拟器尚未start.
运行后,出现如下提示:
185 KB/s (85934 bytes in 0.453s)
pkg: /data/local/tmp/HelloJni-debug.apkSuccess