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的方法.然后,我们就可 ...
随机推荐
- Oracle数据库管理系统下对数据库操作常用命令
desc表名; /*查看表结构*/ alter table ...
- 在页面头部<!DOCTYPE html ....> 前面不能有任何输出
<!-- 这里不能有任何输出,注释也不行 --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...
- UIAlertController 标题文字大小 颜色
NSString *title = [NSString stringWithFormat:]; NSString *msg = @"\n把红包分享给微信好友,金额随机,可用于购买雪票和雪卡& ...
- thinkphp 3.2 视图模型 实例 视图查询结果 二维数组 合并
使用视图模型查询的时候 结果是这样的 array(6) { [0] => array(5) { ["picTitle"] => string(7) "标题2& ...
- Yii2的深入学习--自动加载机制(转)
Yii2 的自动加载分两部分,一部分是 Composer 的自动加载机制,另一部分是 Yii2 框架自身的自动加载机制. Composer自动加载 对于库的自动加载信息,Composer 生成了一个 ...
- hadoop常见问题汇集
1 hadoop conf.addResource http://stackoverflow.com/questions/16017538/how-does-configuration-addreso ...
- 系统研究Airbnb开源项目airflow
开源项目airflow的一点研究 调研了一些几个调度系统, airflow 更满意一些. 花了些时间写了这个博文, 这应该是国内技术圈中最早系统性研究airflow的文章了. 转载请注明出处 htt ...
- PHP 数组的遍历的几种方式(以及foreach与for/while+each效率的比较)
* 使用foreach遍历数组时要注意的问题: * 1.foreach在遍历之前会自动重置指针使用其指向第一个元素,所以foreach可以多次遍历 * 2.foreach遍历完成之后,指针是没有指向数 ...
- 怎样更改wordpress登陆 URL防止恶意注册
WP 默认的登陆 URL 是 wp-login.php或wp-admin.php,许多spamer会根据这些footprint来收集可注册的wordpress站点,然后你的站内就多出许多垃圾评论.如果 ...
- Linux 之安装文件
1.首先要检查 rpm -q gcc glibc glibc-common rrdtool rrdtool-devel expat expat-devel pcre pcre-devel dejavu ...