惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - strayromeo

windows下创建文件夹链接 windows的虚拟磁盘(vhd,vhdx)使用 备注下Windows可能会用到的运行命令 SQL2008R2 收缩数据库问题 - 日志文件不变小 转:SQL Server服务器名称与默认实例名不一致的修复方法 mac下初始化eclipse的安卓开发ndk开发环境 eclipse android ndk 提示Type 'JNIEnv' could not be resolved 等信息解决办法 ubuntu15.10运行android studio出错unable to run mksdcard sdk tool Pavilion M4-1016TX 加装固态硬盘(SSD)+UEFI+GPT安装WIN8.1 redis 内存库设置 教你怎么解决64位Windows版Redis狂占C盘的问题. MSSQL数据库分区表 如何将桌面的路径定义到其它盘符,如d:\users\桌面 - strayromeo - 博客园 sqlserver数据库脱机时发生异常:由于无法在数据库 'SMS' 上放置锁,ALTER DATABASE 失败。请稍后再试。 ALTER DATABASE 语句失败。 (.Net SqlClient Data Provider) JAVA代码反编译笔记 SQLServer—系统中的内存配置 .net remoting 客户端与服务端绑定事件,一部电脑当服务器,另一部当客户端,发布后没法接收远程错误信息。 - strayromeo Java Socket 模拟HTTP请求 HString类替代系统string,内部采用StringBuilder拼接,减少string+操作时对象的创建。 Windows 7 IIS (HTTP Error 500.21 - Internal Server Error)解决 - strayromeo
eclipse ndk 配置和简单开发demo
strayromeo · 2016-06-08 · via 博客园 - strayromeo

记录下以备忘:

android开发的各种资源国内镜像

http://www.androiddevtools.cn/

前端时间尝鲜用android stuido1.5开发了个android的小项目,发现android studio还是蛮好用的,特别是代码提示这块比eclipse 强大多了,还有就是ndk的开发比eclipse方便,但是自从升级到android stuido2.x以后ndk的开发就有问题了,代码没提示了,能编译通过,貌似这个是这个ide的bug,目前最新版本还没解决,如果需要修改native的代码还要切换到1.5的studio,感觉很烦。所以研究下了eclipse开发ndk的方法,特备注下以备忘。

注意:一下操作是建立在你已经有android 的sdk 和ndk的前提下。

(1)首先下载ADT Bundle,ADT Bundle包含了Eclipse、ADT插件和SDK Tools,是已经集成好的IDE,只需安装好Jdk即可开始开发,推荐初学者下载ADT Bundle,不用再折腾开发环境。

下载地址:23.0.2 64位

(2)下载完成后你懂的,直接解压,并指定android sdk的路径,但是你会发现没有配置ndk目录的选项,那是因为没有安装ndk的插件,安装ndk的插件后选择ndk安装目录即可,选择目录是会出现所选的目录无效的问题,那就在ndk目录新建一个ndk-build的空文件,刷新即可。

NDK插件下载地址

下面再配置eclipse自动刷新编译c,c++资源

(3)打开Eclipse,新建一个Android工程(我的取名为TestNdk),在工程目录TestNdk下新建jni文件夹,该文件夹就用来保存NDK需要编译的文件代码等。
(4)新建并配置一个Builder:
(a)Project->Properties->Builders->New,新建一个Builder。
(b)在弹出的【Choose configuration type】对话框,选择【Program】,点击【OK】:
(c)在弹出的【Edit Configuration】对话框中,配置选项卡【Main】。
在“Name“中输入新builders的名称(我取名为Ndk_Builder)。
在“Location”中输入nkd-build.cmd的路径。
(我的是D:\AndroidDev\android-ndk-r7\ndk-build.cmd,根据各自的ndk路径设置,也可以点击“Browser File System…”来选取这个路径)。
在“Working Diretcoty”中输入${workspace_loc:/TestNdk}(也可以点击“Browse Workspace”来选取TestNdk目录)。

(d)【Edit Configuration】对话框中,配置选项卡【Refresh】。
勾选“Refresh resources upon completion”,
勾选“The entire workspace”,
勾选“Recuresively include sub-folders”。

(e)【Edit Configuration】对话框中,配置选项卡【Build options】。
勾选“After a “Clean””,
勾选“During manual builds”,
勾选“During auto builds”,
勾选“Specify working set of relevant resources”。

点击“Specify Resources…”
勾选TestNdk工程的“jni“目录,点击”finish“。
点击“OK“,完成配置。
OK,到这里Eclipse就能够自动调用NDK编译jin目录下的C/C++代码了。

(5)将ndk的安装目录设置到系统环境变量中

(6)一个完整可以运行的demo,jni目录下有个autojavah.bat的文件,设置下路径点击即可生成.h头文件。(到这步可以顺利编译通过了,如果你不需要代码提示,到这步就行了。

需要代码提示继续下面两步:

 (7)右击项目选择Anroid Tools,然后将项目Add Native Support,然后发现编译无法通过了。

(8)

Type '*****' could not be resolved
Method '******' could not be resolved
等等很多诸如此类的错误


解决方法:
是由于没有将jni.h导入的缘故,而这个文件在ndk的目录下面。所以,参照以下步骤:
Project Properties -> C/C++ General -> Path and Symbols
选择include标签,Add -> $Android_NDK_HOME/platforms/Android-14/arch-arm/usr/include
且选中All languages.
最后Apply -> OK
这样错误就解决了。

如果添加了头文件还是问题,那可能是因为工程是C++工程,但代码是用的C风格的代码,解决方法为将工程文件".project"中的“<nature>org.eclipse.cdt.core.ccnature</nature>”行去掉保存,重新打开Eclipse工程。参见:

http://stackoverflow.com/questions/11666711/type-jint-could-not-be-resolved-and-jnienv-jclass

还有一种方法:在extern "C"的大括号中加入#incldue <jni.h>