zoukankan      html  css  js  c++  java
  • NDK学习4: Eclipse HelloWorld

    NDK学习4: Eclipse HelloWorld

    1.配置Eclipse NDK环境 

    Window->preferences->android->ndk

     

    2.新建Android工程

    在工程目录上点右键->Android Tools-> add native support

    这个时候工程会多出一个jni目录

     

    3.编辑Hello.cpp

    #include <stdio.h>

    int main(int argc, char* argv[])

    {

      printf("Hello Android! ");

      return 0;

    }  

     

    4.设置编译属性为可执行

     

    5.编译build all

    编译完后,代码不报错了,语法高亮和智能提示也出来了

    同时Eclipse会在paths and symbols自动加上这些路径

    如上步骤 正确完成 没有自动加的,不高亮的 报错的 可能的问题是:

    Eclipse程序目录带有空格(天坑  我在这里被坑了好久  有木有)

     

    编译完后会在:

    libs目录下生成对应平台架构的可执行文件

     

     

    6.运行

    连接adb 

    新建一个makefile  也可以使用其他脚本文件

     

    脚本流程:

    adb push  将文件压入

    adb shell chmod 添加可执行权限

    adb shell 执行

    运行后发现报错,这个问题是平台不对

     

    7.解决平台abi问题

    在配置文件中指明生成的abi

     

    新建一个Application.mk,输入如下信息

    APP_ABI := armeabi-v7a

    APP_PLATFORM := android-14  

     

    那么问题来了ABI在哪里看呢?AVD Manager即可查看目标版本的ABI

     

    重新编译即可生成

     

    此时修改我们的make file脚本:

    MODALE_NAME := Hello

    all:

        adb push .libsarmeabi-v7a$(MODALE_NAME) /data/local/tmp

        adb shell chmod 755 /data/local/tmp/$(MODALE_NAME)

        adb shell /data/local/tmp/$(MODALE_NAME)  

     

    即可成功运行:

     

  • 相关阅读:
    UVA 11859
    [OpenGL]OpenGL坐标系和坐标变换
    树状数组
    编程算法
    乞讨 间隔[a,b]在见面p^k*q*^m(k&gt;m)中数号码
    解析Android的 消息传递机制Handler
    Atitit.故障排除系列---php 计划网站数据库错误排除过程
    Remove Element
    [Angular Directive] Write a Structural Directive in Angular 2
    [Compose] 18. Maintaining structure whilst asyncing
  • 原文地址:https://www.cnblogs.com/bingghost/p/5723976.html
Copyright © 2011-2022 走看看