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!\r\n");
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 .\libs\armeabi-v7a\$(MODALE_NAME) /data/local/tmp
adb shell chmod 755 /data/local/tmp/$(MODALE_NAME)
adb shell /data/local/tmp/$(MODALE_NAME)
即可成功运行:

NDK学习4: Eclipse HelloWorld的更多相关文章
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- Android JNI和NDK学习(03)--动态方式实现JNI(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092491.html 前面总结了静态实现JNI的方法,本文介绍如何动态实现J ...
- android的ndk学习(1)
android的ndk学习(1) 之前学了一段时间ndk,总认为要总结一下.ndk使得很方便地实现java和C与C++代码的相互沟通.合理地掌握使用ndk能够提高应用程序的运行效率.所以对于学习a ...
- ndk学习20: jni之OnLoad动态注册函数
一.原理 当在系统中调用System.loadLibrary函数时,该函数会找到对应的动态库, 然后首先试图找到"JNI_OnLoad"函数,如果该函数存在,则调用它 JNI_On ...
- Maven学习:Eclipse使用maven构建web项目(转)
Maven学习:Eclipse使用maven构建web项目(转) 8.更改class路径:右键项目,Java Build Path -> Source 下面应该有4个文件夹.src/main/j ...
- Zend Framework学习日记(2)--HelloWorld篇(转)
Zend Framework学习日记(2)--HelloWorld篇 这一篇主要演示如何用zf命令行工具建立一个基于Zend Framework框架的工程,也是我初学Zend Framework的小练 ...
- MOOS学习笔记2——HelloWorld回调
MOOS学习笔记2--HelloWorld回调 例程 #include "MOOS/libMOOS/Comms/MOOSAsyncCommClient.h" bool OnConn ...
- MOOS学习笔记1——HelloWorld
MOOS学习笔记1--HelloWorld 例程 /* * @功能:通讯客户端的最简单程序,向MOOSDB发送名为"Greeting" * 数据"Hello", ...
- Android JNI和NDK学习(04)--NDK调试方法(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092812.html 本文主要介绍在ndk中添加log的方法.然后,我们就可 ...
随机推荐
- Python 系列:1 - Tuples and Sequences
5.3 Tuples and Sequences We saw that lists and strings have many common properties, e.g., indexing a ...
- C#值类型参数传递的性能开销
Performance issues Let's dig a little deeper. When data is passed into methods as value type paramet ...
- -- c语言数据类型总结 --
C语言中的数据类型总结
- Enabling and Mounting NFS on CoreOS
http://blog.scottlowe.org/2015/02/20/config-mount-nfs-coreos/ #cloud-config write-files: - path: /et ...
- 安装docker管理工具rancher
http://blog.csdn.net/freewebsys/article/details/51136562 docker(2):安装docker管理工具rancher rancher是一个Doc ...
- ElasticSearch已经配置好ik分词和mmseg分词(转)
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进行数据索引 ...
- maven 错误解决办法集
一.mavenFailed to execute goal org.apache.maven.plugins:maven-surefire-plugin解决方法 1.测试代码没有获得通过,可以尝重命名 ...
- ssi技术
html页面 <!DOCTYPE html> <html> <head> <title>测试ssi</title> <meta nam ...
- 一张图读懂https加密协议
搭建CA服务器和iis启用https:http://blog.csdn.net/dier4836/article/details/7719532 一张图读懂https加密协议 https是一种加密传输 ...
- WCF自定义扩展,以实现aop!
引用地址:https://msdn.microsoft.com/zh-cn/magazine/cc163302.aspx 使用自定义行为扩展 WCF Aaron Skonnard 代码下载位置: S ...