AndroidDev 板


LINE

本篇好读网址 http://tinyurl.com/gkpacec 先向各位乡民请安 小弟最近初入Android, 如有较为愚蠢或基础的观念不对的话还请各位指教。 前阵子使用Android Studio成功写出一个简单的app 但都是使用纯JAVA的code base。 最近因应公司需求,要开始朝"使用第三方Library"发展 直接联想到的就是一定会被广泛使用的C library (.dll) 查了一些官网以及网路上各神人的sample code 逐渐理解了『JNI』的实现方式 但有监於JNI对应到的C method必须要有特殊的命名法 Java_projectPath_className_cMethodName 所以我的理解是 "拿到dll之後要另外再包一层.h让JNI认得" 这理解有误吗?(Q1) 这个方法不是不行但似乎要多不少功夫 於是查到了JNA这个备受推崇的第三方jar 看起来是强化很多JNI不方便的地方 https://github.com/java-native-access/jna (GitHub) 由页面说明可看出众多公司及有名的专案都有使用 促使小弟尝试使用 於是遇到了以下诸多关於操作Android Studio的基本问题 (铺梗铺很久?) 环境: Windows 10 Android Studio1.5.1 JDK 1.8.0_73 NDK r11 (用AS的SDK Manager装) 1. 我使用AS(1.5.1)开启了一个新的专案JNATest,选择API18 参考这个网址的做法 http://goo.gl/yydkFW 找到路径 JNATest/app/libs 将下载好的jna.jar放入 (JNATest/app/libs/jna-4.2.2.jar) 要import进去的jar,放在此路径有放错吗? (Q2) 2. http://imgur.com/xywVu9K 在MainActivity.java写好基本的JNA sample 然後在AS左侧的project树状图找到jna-4.2.2.jar点右键选择"Add as library" 可以看到关於import com.sun.jna部分的警告都已消除 http://imgur.com/H0mA9Fm 检查过Project Structure的Dependencies有包含jna-4.2.2.jar 检查过build.gradle的dependencies也有compile files 我这段test code是参考wiki对於JNA的example https://en.wikipedia.org/wiki/Java_Native_Access#Example 但问题出在图中的红色箭头所指 当我去呼叫printf()的时候就造成crash (Q3) Android Monitor显示错误为下图 http://imgur.com/kdCdaYM 实体装置为Sony Z3 搭载Android 5.0.2 我查了好多篇文献都是在讲code如何implement 却都没有提到有关设定的部分 感觉很像是基本常识所以没人提\⊙▽⊙/ 请问是不是我在import jar的设定哪里错误.. 或是有人可以提供如何使用JNA的方法吗 囧 -- 恭喜您荣获乡民资格!! \ ˊ真是不好意思~ ● ●> /\/| (握) ∥ /\ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.225.16.96
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1459315423.A.2ED.html ※ 编辑: nepholi (36.225.16.96), 03/30/2016 13:35:40
1F:→ ssccg: 只有jar不够,还要放libjnidispatch.so 03/30 14:01
2F:→ ssccg: 另外不是随便拿个library来就能用,要拿library的source 03/30 14:03
3F:→ ssccg: code用ndk build,或是有提供build好给android用的版本 03/30 14:06
ssccg大你好 我去查了一下libjnidispatch.so在这两篇提到 http://tinyurl.com/hbyrtvp http://tinyurl.com/z4wew27 是否就是你所提到的"要拿source code来build"概念呢 我将JNA的source code整包载下来後 对native/lib/$(platform).jar做解压缩 的确得到了libjnidispatch.so 但似乎对於放在哪里还不太能理解 我会先朝build JNA source code的方向去尝试 谢谢 ※ 编辑: nepholi (36.225.16.96), 03/30/2016 14:35:05
4F:→ mshockwave: 他指的是你第三方library要有原始码吧 03/30 21:42
5F:→ mshockwave: 还有JNI也可以用程式方法去注册native端函式,关键字 03/30 21:44
6F:→ mshockwave: :JNI_OnLoad RegisterNative 03/30 21:44
7F:→ mshockwave: 我个人认为用程式码注册是会比较简洁 03/30 21:46
8F:→ mshockwave: AOSP 也是用他来处理JNI相关事务 03/30 21:46
mshockwave大你好 谢谢你提供的关键字,我有稍微看了一下用法 但我想import一个jar也是必学的一部分 会另外再找时间研究,非常感谢。 ※ 编辑: nepholi (36.229.238.40), 03/31/2016 14:00:57







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP