• Emacs用JDEE编写Android程序


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

    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命令成功了。


  • 相关阅读:
    小程序裁剪图片上传头像,二维码源码
    算法随笔
    背景色根据数值由深到浅
    jquery 点击弹框
    css3
    HTML5中手势原理分析与数学知识的实践
    es6(var,let,const,set,map,Array.from())
    taro3.0 Swiper album example
    taro3.x: 搭建redux环境
    taro: fial cannot navigate back at first page
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10500714.html
  • Copyright © 2020-2023  润新知