今天在抽出了一点时间准备在Android studio上实现jni编程。

按照步骤创建了一个带c++的android项目,编译的时候问题来了:


环境:

Android studio2.3.2

jdk1.8.0

sdk25

ndk14.1


问题

1.JNIEXPORT和JNICALL都提示Error after macro substitution: Microsoft attributes are not supported by the complier

error: unknown type name '__declspec'

2.__int64认不到


解决办法:

在网上爬了很久,没有在解决办法。

最后总结网上说的和根据自己经验:

问题产生的原因:

1.是编译工具不支持window的导出动态库的属性声明,

JNIIMPORT __declspec(dllimport)
   
JNICALL __stdcall
2.linux环境下需要定义jlong为long long


最终修改${JAVA_HOME}\include\win32\jni_md.h文件如下




问题解决,mark一下,备查。




最后

更多相关文章

  1. Nginx系列教程(一)| 手把手教你在Linux环境下搭建Nginx服务
  2. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  3. Android聊天软件开发(基于网易云IM即时通讯)——环境搭建(一)
  4. Android培训班(12)
  5. android 常用 INTENT
  6. android中通过代码启动应用程序
  7. Android(安卓)Studio启动前sdk下载不了
  8. ubuntu14.04上面安装android studio
  9. nexus7 升级失败后手动刷系统

随机推荐

  1. MySQL语句加锁的实现分析
  2. mysql 启动1067错误及修改字符集重启之后
  3. MySQL优化总结-查询总条数
  4. winx64下mysql5.7.19的基本安装流程(详细
  5. MySQL 语句注释方式简介
  6. mysql分页性能探索
  7. MySQL5.7.17安装及配置图文教程
  8. 详细解读分布式锁原理及三种实现方式
  9. mysql Community Server 5.7.19安装指南(
  10. 史上最简单的MySQL数据备份与还原教程(上