linux下开发android_jni过程及错误经历
2016-03-23 15:03
369 查看
第一次用linux操作系统,虽说有ubunto,一样难以接受
搭了两三天的环境,试了一天的开发
说说经验
关于linux的一些命令
sudo 获取权限
vi打开一个文本
touch A.java在当前目录下创建一个名字叫做A的java文件
cd ..返回到上一级
cd返回到根目录
sudo vi /etc/profile查看环境变量(姑且这么叫。。。)
pwd输出当前目录的绝对路径
ls输出当前目录下所有的文件和文件夹
clear清空cmd界面
在文本中:
insert表示插入(可以理解成输入)
Replace表示替换
Esc退出编辑模式
在退出编辑模式的情况下shift+冒号,
wq保存并退出
q!强制退出
环境变量中:
#为注释,:冒号为各环境变量的分隔线(windows下为分号;)
关于环境搭建
关于jdk的搭建:
下载网站
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
选linux 对应系统版本的jdk
下载安装
然后配置环境变量
打开linux的cmd界面,回到主界面(我这里是desktop)
sudo vi /etc/profile
回车会让你输入密码,一般是123456,若自己改过就填改过的密码
然后会进入一个文本编辑的过程
把光标弄到文本最下面,然后按一下键盘的insert键
fi和export之间输入
export JAVA_HOME=/home/jdk1.8.0_65
export JER_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
在path后加上(这里和windows不同,环境变量之间用冒号分隔:)
$JAVA_HOME/bin:$JRE_HOME/bin
之后按Esc键退出编辑状态
按shift+冒号,输入wq回车,保存并退出
输入source /etc/profile使环境变量成功被使用
输入java自带的命令查看是否被编译成功
关于eclipse和adt:
好友发给我的东西,我存在网盘,直接下载即可
https://yunpan.cn/cuqkmNCVDX8JN 访问密码 4969
下载好解压,里面自带eclipse和sdk(adt插件已装好)
打开eclipse,指定sdk的路径即可使用
另外:如果想使用其他版本的sdk,可以直接在window上复制粘贴进相应的文件夹里即可,所需要的右三个,build-tools(工具),platforms(不知道事什么),system-images(此版本的模拟器)
下载并安装64位的ndk(但是网上基本没有64位的NDK,直接使用32位的可以代替)
和上面一样,存在了网盘,
https://yunpan.cn/cuqk8FEJ2pAbF 访问密码 b5d4
下载好之后解压到任意目录,然后打开cmd界面,
进入你存放ndk的父目录,输入pwd,输出绝对路径,复制
返回到最底层(我这里是desktop)
输入
sudo vi /etc/profile回车
会提示输入密码,和上面一样,输入密码后回车
进入编辑页面把光标弄到最下面,还是fi和export之间, 输入
export NDKROOT="",在括号之间粘贴ndk的绝对路径
ps:之前因为这个路径,我以为我装好了,结果浪费了几个小时,,,
然后在path中添加
$NDKROOT
注意:各环境变量之间的分隔符是冒号
然后按Esc退出编辑状态,按下shift+冒号,
输入wq回车,保存并退出
输入source /etc/profile使环境变量生效
之后为了确定是否成功装好了ndk
需要进入ndk目录,进到sample目录下,进入helloJni目录下,
输入
ndk-build
如果提示不是内部或外部命令,则没有安装成功,若提示xxxxx 最后是. Stop则安装成功
开始开发:
步骤:
1.创建一个安卓项目,写native方法
2.用javah编译出.h文件
3.写.c文件(目前不知道该怎么写,测试时是复制的sample下.c的返回一个字符串)
4.ndk-build
5.让它自己编译
6.运行
具体和注意事项
1。创建安卓项目,只声明一个native方法,但不进行调用
2.cmd进入项目的src目录下输入,
javah -classpath . com.xxx.xxx.className 会生成一个.h文件
剪切.h文件,回到项目根目录下,创建jni文件夹,将.h丢进去
3.写.C文件
回到eclipse,刷新项目,会在项目下出现jni文件夹和.h文件
在jni文件夹上点右键,new->file
名字为xxx.c
打开.h文件,复制方法到.c中,分号改为{},在第一个参数后边添加env,在第二个参数后边添加object,若是直接复制粘贴的C文件,请注意方法的参数是不是JNIENV 和Jobject,若不是,请改过来,不然会报错
找到NDK的根目录,在sample里面的项目中随便找个android.mk和Application.mk复制到jni目录下
打开Application.mk文件,确定内容为
APP_ABI := all
若不是,请修改
打开Android.mk
找到前面为蓝色的那几行
其中LOCAL_MODULE为即将生成.so文件的名字
另外一个LOCAL_SRC_FILES为加载的.c文件,其他的蓝色文字全部删掉(因为目前不知道用处。。。。)
4(手动编译)和5(自动编译)
ndk-build命令
打开cmd到项目根目录下
输入ndk-build(这个是手动进行编译)
5.让它自己进行编译
右键点击项目,点击properties,进入Builders,点击右边的new,选择Program
点ok,
在最上面随便输入一个名字(我这里是fuck)
在main选项卡中,
location是ndk目录下命令ndk-build的位置
working Directory是项目根目录的位置
设置完切换到Refresh选项卡中
勾选Refresh rexxxxxxxxx
勾选Recursively inxxxxxx
设置切换到Build Options
勾选Allocate Consolexxxxxxx
在Run the builder:下
勾选1235 并点击右边的Specify Resources
然后选择项目的jni文件夹
最后点ok
之后每一次保存(随着eclipse的编译)都会重新编译一次
如果没有错误,就可以直接运行了
搭了两三天的环境,试了一天的开发
说说经验
关于linux的一些命令
sudo 获取权限
vi打开一个文本
touch A.java在当前目录下创建一个名字叫做A的java文件
cd ..返回到上一级
cd返回到根目录
sudo vi /etc/profile查看环境变量(姑且这么叫。。。)
pwd输出当前目录的绝对路径
ls输出当前目录下所有的文件和文件夹
clear清空cmd界面
在文本中:
insert表示插入(可以理解成输入)
Replace表示替换
Esc退出编辑模式
在退出编辑模式的情况下shift+冒号,
wq保存并退出
q!强制退出
环境变量中:
#为注释,:冒号为各环境变量的分隔线(windows下为分号;)
关于环境搭建
关于jdk的搭建:
下载网站
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
选linux 对应系统版本的jdk
下载安装
然后配置环境变量
打开linux的cmd界面,回到主界面(我这里是desktop)
sudo vi /etc/profile
回车会让你输入密码,一般是123456,若自己改过就填改过的密码
然后会进入一个文本编辑的过程
把光标弄到文本最下面,然后按一下键盘的insert键
fi和export之间输入
export JAVA_HOME=/home/jdk1.8.0_65
export JER_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
在path后加上(这里和windows不同,环境变量之间用冒号分隔:)
$JAVA_HOME/bin:$JRE_HOME/bin
之后按Esc键退出编辑状态
按shift+冒号,输入wq回车,保存并退出
输入source /etc/profile使环境变量成功被使用
输入java自带的命令查看是否被编译成功
关于eclipse和adt:
好友发给我的东西,我存在网盘,直接下载即可
https://yunpan.cn/cuqkmNCVDX8JN 访问密码 4969
下载好解压,里面自带eclipse和sdk(adt插件已装好)
打开eclipse,指定sdk的路径即可使用
另外:如果想使用其他版本的sdk,可以直接在window上复制粘贴进相应的文件夹里即可,所需要的右三个,build-tools(工具),platforms(不知道事什么),system-images(此版本的模拟器)
下载并安装64位的ndk(但是网上基本没有64位的NDK,直接使用32位的可以代替)
和上面一样,存在了网盘,
https://yunpan.cn/cuqk8FEJ2pAbF 访问密码 b5d4
下载好之后解压到任意目录,然后打开cmd界面,
进入你存放ndk的父目录,输入pwd,输出绝对路径,复制
返回到最底层(我这里是desktop)
输入
sudo vi /etc/profile回车
会提示输入密码,和上面一样,输入密码后回车
进入编辑页面把光标弄到最下面,还是fi和export之间, 输入
export NDKROOT="",在括号之间粘贴ndk的绝对路径
ps:之前因为这个路径,我以为我装好了,结果浪费了几个小时,,,
然后在path中添加
$NDKROOT
注意:各环境变量之间的分隔符是冒号
然后按Esc退出编辑状态,按下shift+冒号,
输入wq回车,保存并退出
输入source /etc/profile使环境变量生效
之后为了确定是否成功装好了ndk
需要进入ndk目录,进到sample目录下,进入helloJni目录下,
输入
ndk-build
如果提示不是内部或外部命令,则没有安装成功,若提示xxxxx 最后是. Stop则安装成功
开始开发:
步骤:
1.创建一个安卓项目,写native方法
2.用javah编译出.h文件
3.写.c文件(目前不知道该怎么写,测试时是复制的sample下.c的返回一个字符串)
4.ndk-build
5.让它自己编译
6.运行
具体和注意事项
1。创建安卓项目,只声明一个native方法,但不进行调用
2.cmd进入项目的src目录下输入,
javah -classpath . com.xxx.xxx.className 会生成一个.h文件
剪切.h文件,回到项目根目录下,创建jni文件夹,将.h丢进去
3.写.C文件
回到eclipse,刷新项目,会在项目下出现jni文件夹和.h文件
在jni文件夹上点右键,new->file
名字为xxx.c
打开.h文件,复制方法到.c中,分号改为{},在第一个参数后边添加env,在第二个参数后边添加object,若是直接复制粘贴的C文件,请注意方法的参数是不是JNIENV 和Jobject,若不是,请改过来,不然会报错
找到NDK的根目录,在sample里面的项目中随便找个android.mk和Application.mk复制到jni目录下
打开Application.mk文件,确定内容为
APP_ABI := all
若不是,请修改
打开Android.mk
找到前面为蓝色的那几行
其中LOCAL_MODULE为即将生成.so文件的名字
另外一个LOCAL_SRC_FILES为加载的.c文件,其他的蓝色文字全部删掉(因为目前不知道用处。。。。)
4(手动编译)和5(自动编译)
ndk-build命令
打开cmd到项目根目录下
输入ndk-build(这个是手动进行编译)
5.让它自己进行编译
右键点击项目,点击properties,进入Builders,点击右边的new,选择Program
点ok,
在最上面随便输入一个名字(我这里是fuck)
在main选项卡中,
location是ndk目录下命令ndk-build的位置
working Directory是项目根目录的位置
设置完切换到Refresh选项卡中
勾选Refresh rexxxxxxxxx
勾选Recursively inxxxxxx
设置切换到Build Options
勾选Allocate Consolexxxxxxx
在Run the builder:下
勾选1235 并点击右边的Specify Resources
然后选择项目的jni文件夹
最后点ok
之后每一次保存(随着eclipse的编译)都会重新编译一次
如果没有错误,就可以直接运行了
相关文章推荐
- 关于linux 下fcntl()函数的介绍
- linux下read/write编程
- linux下hwclock查询和设置硬件时钟
- Linux环境中查看java的安装路径,设置环境变量
- Centos6.5 卸载mysql
- “Linux内核分析”第五周报告
- linux ubuntu下如何安装并且切换java版本(Unsupported major.minor version 52.0)
- 嵌入式linux的系统搭建与配置
- Linux gzip: stdin: unexpected end of file 硬盘没有空间
- centos7 关闭firewall安装iptables并配置
- debian添加删除用户
- linux路由添加
- Linux 实现自动备份mysql
- linux 常用命令
- Linux命令 crontab
- Dubbo基础篇_01_CentOS安装jdk,Tomact环境
- centos grub安装
- Linux文件的打包与压缩
- 怎么判断你的linux系统是不是运行在虚拟机器上面
- linux下虚拟机找不到虚拟光驱cdrom