首页 > android NDK 编译hellojni 例子文件

android NDK 编译hellojni 例子文件

运行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:androidandroid-ndk-r7csamples ative-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:androidandroid-ndk-r7csamples ative-activity>android update project -p . -

t android-10 -s

Updated and renamed default.properties to project.properties

Updated local.properties

No project name specified, using Activity name 'NativeActivity'.

If you wish to change it, edit the first line of build.xml.

Added file I:androidandroid-ndk-r7csamples ative-activityuild.xml

Added file I:androidandroid-ndk-r7csamples ative-activityproguard.cfg

从上面看出,已经生成了build.xml文件了.

 

运行ant debug命令,输出如下:

I:androidandroid-ndk-r7csampleshello-jni>ant debug

Buildfile: I:androidandroid-ndk-r7csampleshello-jniuild.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:androidandroid-ndk-r7csampleshello

-jniinclasses

-post-compile:

-obfuscate:

-dex:

      [dex] Converting compiled files and external libraries into I:androidand

roid-ndk-r7csampleshello-jniinclasses.dex...

-crunch:

   [crunch] Crunching PNG Files in source dir: I:androidandroid-ndk-r7csample

shello-jni es

   [crunch] To destination dir: I:androidandroid-ndk-r7csampleshello-jniin

es

   [crunch] Crunched 0 PNG files to update cache

-package-resources:

     [aapt] Creating full resource package...

     [aapt] Warning: AndroidManifest.xml already defines debuggable (inhttp://s

chemas.android.com/apk/res/android); using existing value in manifest.

-package:

[apkbuilder] Current build type is different than previous build: forced apkbuil

der run.

[apkbuilder] Creating HelloJni-debug-unaligned.apk and signing it with a debug k

ey...

-do-debug:

 [zipalign] Running zip align on final apk...

     [echo] Debug Package: I:androidandroid-ndk-r7csampleshello-jniinHell

oJni-debug.apk

debug:

[propertyfile] Creating new property file: I:androidandroid-ndk-r7csampleshe

llo-jniinuild.prop

[propertyfile] Updating property file: I:androidandroid-ndk-r7csampleshello-

jniinuild.prop

[propertyfile] Updating property file: I:androidandroid-ndk-r7csampleshello-

jniinuild.prop

[propertyfile] Updating property file: I:androidandroid-ndk-r7csampleshello-

jniinuild.prop

BUILD 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.apk

Success

转载于:https://www.cnblogs.com/geeeknerd/archive/2013/05/09/3068898.html

更多相关:

  • android:id 为控件指定相应的IDandroid:text 指定控件的文本,置尽量使用strings.xmlandroid:grivity 指定控件的基本位置 ,比如举重,居右,android:padding 指定控件的内边距,控件当中的内容android:singleLine 如果设置为真的话,则将控件的内容在同一行当中显示...

  • 布局主要分两个 其中主布局是

  • 大家平时见到的最多的可能就是Frame动画了,Android中当然也少不了它。它的使用更加简单,只需要创建一个 AnimationDrawabledF对象来表示Frame动画,然后通过addFrame 方法把每一帧要显示的内容添加进去,并设置播放间隔时间,本例子中间隔时间为5S, 最后通过start 方法就可。 以播放这个动画了,...

  • 作业要求: 作一个显示框里面分成三行 一二行占这个框的1/2 第三行独占1/2 第三行里面分成两列第一列占25%,第二列占75%。 屏幕显示效果 实现步骤:  

  • 一:Service简介 Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service。 1:Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件。其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行。另外,一个组件能够绑定到一个service与之交...