版权声明:本文为博主原创文章。未经博主同意不得转载。

https://blog.csdn.net/sheismylife/article/details/24842669

前文介绍了怎样用Maven构建Androidproject。如今进一步介绍怎样使用JDEE编敲代码。

Ubuntu 14.04 Android 使用Maven二 创建自己的Mavenproject

怎样安装JDEE可以參考之前的文章:

Emacs 24.3 配置JDEE

首先要安装一个m2jdee的插件,可以依据maven的pom.xml中的配置生成jdee所需的prj.el文件。

获取该项目:

git clone git@gitlab.com:devtool/m2jdee.git

或者

git clone https://gitlab.com/devtool/m2jdee.git

进入m2jdee文件夹后,编译安装:

mvn install

然后配置~/.m2/settings.xml文件。加入:

  <pluginGroups>
<pluginGroup>org.freebird.maven.plugins</pluginGroup>
</pluginGroups>

好了,如今进入我的android mavenproject文件夹, 执行以下的命令:

mvn m2jdee:jdee

一会儿,prj.el文件生成了,内容例如以下:

(jde-project-file-version "1.0")
(jde-set-variables
'(jde-sourcepath '("/home/dean/work/gitlab_cloud/android/example/mvn_example1/src/test/java" "/home/dean/work/gitlab_cloud/android/example/mvn_example1/src" ))
'(jde-global-classpath '("/home/dean/.m2/repository/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar" "/home/dean/.m2/repository/org/apache/httpcomponents/httpclient/4.0.1/httpclient-4.0.1.jar" "/home/dean/.m2/repository/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar" "/home/dean/work/gitlab_cloud/android/example/mvn_example1/target/test-classes" "/home/dean/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" "/home/dean/work/gitlab_cloud/android/example/mvn_example1/target/classes" "/home/dean/.m2/repository/org/khronos/opengl-api/gl1.1-android-2.1_r1/opengl-api-gl1.1-android-2.1_r1.jar" "/home/dean/.m2/repository/com/google/android/android/4.1.1.4/android-4.1.1.4.jar" "/home/dean/.m2/repository/org/json/json/20080701/json-20080701.jar" "/home/dean/.m2/repository/xpp3/xpp3/1.1.4c/xpp3-1.1.4c.jar" "/home/dean/.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar" )))

好。如今打开mvn_example1/project的一个java文件。 看一下智能提示是否生效:

C-c v .

可以出现完毕菜单。

配置成功。

详细使用细节请參考我之前的文章:

Emacs开发Java之使用

怎样调试

先在~/.emacs.d/init.el中配置一下, 设置jdb为调试器, 调试端口为8700。

;; jdee
(add-to-list 'load-path "~/.emacs.d/jdee-2.4.1/lisp")
(load "jde")
(custom-set-variables
'(jde-debugger (quote ("jdb")))
'(jde-db-option-connect-socket (quote (nil "8700")))) (require 'android-mode)
(setq android-mode-sdk-dir "/opt/android-sdk-linux/")

启动

andriod-start-emulator

android-start-ddms

一定要在DDM的窗体选中要调试的进程

调试使用的命令

mvn_example1$ jdb -sourcepath "/home/dean/work/gitlab_cloud/android/example/mvn_example1/src" -attach localhost:8700
设置 未捕捉到 javamvn_example1$ jdb -sourcepath "/home/dean/work/gitlab_cloud/android/example/mvn_example1/src" -attach localhost:8700
设置 未捕捉到 java.lang.Throwable
设置延迟的 未捕捉到 java.lang.Throwable
正在初始化 jdb....lang.Throwable
设置延迟的 未捕捉到 java.lang.Throwable
正在初始化 jdb...

因为jdee的jde-jdb-attach-via-socket使用的命令是:

jdb -connect com.sun.jdi.SocketAttach:port=8700

无法连接android 里的 jvm。 

经过实验。须要加一个參数就行连接:

jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost

因此改动jdee的配置,在init.el中例如以下配置:

;; jdee
(add-to-list 'load-path "~/.emacs.d/jdee-2.4.1/lisp")
(load "jde")
(custom-set-variables
'(jde-db-option-connect-socket (quote ("localhost" "8700")))
'(jde-debugger (quote ("jdb"))))

如今jde-jdb-attach-via-socket命令成功了。

Emacs用JDEE编写Android程序的更多相关文章

  1. 用Eclipse编写Android程序的代码提示功能

    用Eclipse编写Android程序的代码提示功能主要是在java和xml文件中,有时候会失效,默认的提示功能有限. 1)java文件自动提示     Window->Preferences- ...

  2. 20162311 编写Android程序测试查找排序算法

    20162311 编写Android程序测试查找排序算法 一.设置图形界面 因为是测试查找和排序算法,所以先要有一个目标数组.为了得到一个目标数组,我设置一个EditText和一个Button来添加数 ...

  3. Visual Studio 开始支持编写 Android 程序并自带 Android 模拟器【转载】

    原文地址 本文内容 为什么需要一个 Android 模拟器 针对 Visual Studio Android 模拟器的调试 Visual Studio Android 模拟器的传感器模拟和其他功能 A ...

  4. 用Xamarin + VS 编写Android程序体验及其与Android Studio的比较

    昨天看了微软2016Build大会,Xamarin免费了.恩,5亿美刀的家伙,哈哈,我也要体验一下..... 1. 首先在Xamarin官网下载安向导:https://www.xamarin.com/ ...

  5. [转]eclipse下编写android程序突然不会自动生成R.java文件和包的解决办法

    原网址 : http://www.cnblogs.com/zdz8207/archive/2012/11/30/eclipse-android-adt-update.html 网上解决方法主要有这几种 ...

  6. 用eclipse编写Android程序时怎样生成apk文件

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/16828449 APK是Android Package的缩写,即Android安装包.通过将 ...

  7. 编写Android程序Eclipse连不上手机。

    主要问题有: 1.开发者选项没有开启 2.设备管理器中MTP有黄色小叹号 3.ADB异常. 问题1容易解决. 问题2,3困扰了我很长时间,网上的很多解决方法是下载安装MTP驱动,或者直接右击更新驱动. ...

  8. 每个人都要学的图片压缩终极奥义,有效解决 Android 程序 OOM

    # 由来 在我们编写 Android 程序的时候,几乎永远逃避不了图片压缩的难题.除了应用图标之外,我们所要显示的图片基本上只有两个来源: 来自网络下载 本地相册中加载 不管是网上下载下来的也好,还是 ...

  9. [置顶] android利用jni调用第三方库——第三篇——编写库android程序整合第三方库libhello.so到自己的库libhelloword.so

    0:前言: 在第二篇中,我们主要介绍了丙方android公司利用乙方C++公司给的动态库,直接调用库中的方法,但是这样方式受限于: 乙方C++公司开发的动态库是否符合jni的规范,如果不规范,则不能直 ...

随机推荐

  1. SQLSERVER 数据库管理员的专用连接DAC

    DAC:Dedicated Admin Connection 当SQL Server因系统资源不足,或其它异常导致无法建立数据库连接时, 可以使用系统预留的DAC连接到数据库,进行一些问题诊断和故障排 ...

  2. WPF DataGrid 数据绑定之"List配合Dictionary"

    WPF 的DataGrid是WPF中最为强大的控件之一,可以通过各种方式绑定 例如通过最为形似的dataTable来绑定 本文则用List<Dictionary<K,V>>来绑 ...

  3. css背景属性整理

    背景颜色 {background-color:red}/*常用十六进制颜色#fff*/ 图片 {background-image:url();} /*插入图片路径*/ 重复 {background-r ...

  4. Python爬虫笔记【一】模拟用户访问之设置处理cookie(2)

    学习的课本为<python网络数据采集>,大部分代码来此此书. 做完请求头的处理,cookie的值也是区分用户和机器的一个方式.所以也要处理一下cookie,需要用requests模块,废 ...

  5. Vue. 之 刷新当前页面,重载页面数据

    Vue. 之 刷新当前页面,重载页面数据 如下截图,点击左侧不同的数据,右侧根据左侧的KEY动态加载数据.由于右侧是同一个页面,在进行路由跳转后,不会再次刷新数据. 解决方案: 右侧的页面中 scri ...

  6. python编程:从入门到实践学习笔记

    python编程:从入门到实践学习笔记 原文地址:https://blog.csdn.net/qq_35554125/article/details/79548192 [day 1]python编程: ...

  7. Lamdba表达式的代码使用讲解

    public class Lambda{ public static void main(String[] args) { repeat(10, (i)->System.out.print(&q ...

  8. Leetcode532.K-diff Pairs in an Array数组中的K-diff数对

    给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k ...

  9. JosnRpcClient

    <?php /** * Simple JSON-RPC interface. */ namespace org; class JosnRpcClient{ protected $host; pr ...

  10. Puppet master-agent模型搭建

    Puppet master-agent模型工作过程: 基于ssl xmlrpc进行通信,端口8140/tcp agent:默认每隔30分钟向master发送node name和facts,并请求cat ...