精华内容
下载资源
问答
  • 错误提示如: 解决方式: 在电脑中设置打开图片的默认方式为美图或其他图片软件(我设置的默认打开方式为美图看看),设置完之后,刷新Eclipse,搞定。

    错误提示如:
    这里写图片描述
    解决方式:
    在电脑中设置打开图片的默认方式为美图或其他图片软件(我设置的默认打开方式为美图看看),设置完之后,刷新Eclipse,搞定。

    展开全文
  • 这段时间在eclipse3.2中导出rcp产品总报java.lang.RuntimeException: 找不到应用程序标识。我们组只在 一个人那里可以正常导出,上网看了些资料大概总结下觉得有可能出现的问题如下:1.有可能是你.product有问题.2....

    这段时间在eclipse3.2中导出rcp产品总报java.lang.RuntimeException: 找不到应用程序标识。我们组只在 一个人那里可以正常导出,上网看了些资料大概总结下觉得有可能出现的问题如下:

    1.有可能是你.product有问题.

    2.你eclipse版本有问题.

    3.你eclipse版本和你依赖的插件版本不配套,我的就是这种情况,我把gef包换了一个配套的再导出,万事ok,希望能对大家有帮助~~ 

    展开全文
  • 使用 Eclipse 远程调试 Java 应用程序

    千次阅读 2011-09-29 17:45:25
    程调试对应用程序开发十分有用。例如,为能托管开发平台的低端机器开发程序,或在专用的机器上(比如服务能中断的 Web 服务器)调试程序。其他情况包括:运行在内存小或 CUP 性能低的设备上的 Java 应用程序...
    程调试对应用程序开发十分有用。例如,为不能托管开发平台的低端机器开发程序,或在专用的机器上(比如服务不能中断的 Web 服务器)调试程序。其他情况包括:运行在内存小或 CUP 性能低的设备上的 Java 应用程序(比如移动设备),或者开发人员想要将应用程序和开发环境分开,等等。
    

    先决条件

    启动配置类型

    启动配置 保存一组用于启动程序的属性。启动配置类型是一种可以在 Eclipse 平台上启动的独特程序。

    如果您还没安装该程序,请下载 Eclipse V3.4(Ganymede)。在 Ganymede 中,套接字(socket)监听连接器被添加到 Remote Java Application 启动配置类型。Eclipse 最新的套接字监听连接器允许您打开 Java 调试器,它能够监听特定套接字上的连接。可以从命令行选项打开被调试的程序,并将其连接到调试器。在 Ganymede 发布之前,仅有一个连接套接字的连接器,被调试的程序所在的机器必须是一个与调试器相连的调试主机。由于受到内存和 CPU 不足的限制,要想让移动设备充当主机是不现实的。

    为了进行远程调试,必须使用 Java Virtual Machine (JVM) V5.0 或更新版本,比如 IBM® J9 或 Sun Microsystem 的 Java SE Development Kit(JDK)。本文主要讨论远程调试,而不是每个 Eclipse 调试特性的细节。查看参考资料 获得更多关于使用 Eclipse 进行调试的信息,并且可以找到上面提到的软件。

    JPDA 简介

    常用缩写词

    • JDI— Java 调试接口(Java Debug Interface)
    • JDT— Java 开发工具(Java Development Tools)
    • JDWP— Java 调试网络协议(Java Debug Wire Protocol)
    • JPDA— Java 平台调试器架构(Java Platform Debugger Architecture)
    • JVM— Java 虚拟机(Java Virtual Machine)
    • JVMDI— JVM 调试接口(JVM Debug Interface)
    • JVMTI— JVM 工具接口(JVM Tool Interface)
    • VM— 虚拟机(Virtual Machine)

    Sun Microsystem 的 Java Platform Debugger Architecture (JPDA) 技术是一个多层架构,使您能够在各种环境中轻松调试 Java 应用程序。JPDA 由两个接口(分别是 JVM Tool Interface 和 JDI)、一个协议(Java Debug Wire Protocol)和两个用于合并它们的软件组件(后端和前端)组成。它的设计目的是让调试人员在任何环境中都可以进行调试。JPDA 不仅能够用于桌面系统,而且能够在嵌入式系统上很好地工作。

    JVM Tool Interface (JVMTI) 规定必须为调试提供 VM(编辑注:从 Java V5 开始,将用 JVMTI 代替 Java V1.4 中的 JVMDI)。Java Debug Wire Protocol (JDWP) 描述调试信息的格式,以及在被调试的进程和调试器前端之间传输的请求,调试器前端实现 JDI,比如 Eclipse、Borland JBuilder 等。根据 Sun 的 JPDA 规范,被调试的程序常常称为debuggee。JDI 是一个高级的接口,它定义用于远程调试的信息和请求。下面给出了调试器的架构。


    清单 1. Java 平台调试器架构
    				
                 Components                      Debugger Interfaces
    
                     /    |--------------|
                    /     |     VM       |
     debuggee -----(      |--------------|  <---- JVMTI - Java VM Tool Interface
                    \     |   back-end   |
                     \    |--------------|
                     /           |
     comm channel --(            |  <------------ JDWP - Java Debug Wire Protocol
                     \           |
                     /    |--------------|
                    /     |  front-end   |
     debugger -----(      |--------------|  <---- JDI - Java Debug Interface
                    \     |      UI      |
                     \    |--------------|	    
    	  

    因此,任何第三方工具和基于 JPDA 的 VM 应该都能协调工作。通过这个客户机-服务器架构,您可以从运行该平台的本地工作站调试 Java 程序,甚至还可以通过网络进行远程调试。

    在讨论调试场景之前,我们先了解 JPDA 规范中的两个术语:连接器和传输。连接器是一个 JDI 抽象,用来在调试器应用程序和目标 VM 之间建立连接。传输定义应用程序如何进行访问,以及数据如何在前端和后端之间传输。连接器 “映射” 到可用的传输类型和连接模式。在 Sun 的 JPDA 参考实现中,为 Microsoft® Windows® 提供了两个传输机制:套接字传输和共享内存传输。可用的连接器:

    • 连接套接字连接器
    • 连接共享内存连接器
    • 监听套接字连接器
    • 监听共享内存连接器
    • 启动命令行连接器

    在调试器应用程序和目标 VM 之间建立连接时,有一端将用作服务器并监听连接。随后,另一端将连接到监听器并建立一个连接。通过连接,调试器应用程序或目标 VM 都可以充当服务器。进程之间的通信可以在同一个机器或不同的机器上运行。

    要远程调试 Java 程序,难点不是在调试器的前端,而是远程 Java 后端。不幸的是,Eclipse 帮助系统中为这方面提供的信息并不多。事实上,JDI 和 JVMTI 是分别由 Eclipse 和 Java 运行时环境实现的。我们仅需要考虑 JDMP,因为它包含与 JVMTI 和 JDI 进行通信所需的信息。JDWP 包含许多参数,用于为远程 Java 应用程序调用所需的程序。以下是本文用到的一些参数。

    -Xdebug
    启用调试特性。
    -Xrunjdwp:<sub-options>
    在目标 VM 中加载 JDWP 实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。下面介绍一些特定的子选项。

    从 Java V5 开始,您可以使用 -agentlib:jdwp 选项,而不是 -Xdebug-Xrunjdwp。但如果连接到 V5 以前的 VM,只能选择-Xdebug-Xrunjdwp。下面简单描述 -Xrunjdwp 子选项。

    transport
    这里通常使用套接字传输。但是在 Windows 平台上也可以使用共享内存传输。
    server
    如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。
    address
    这是连接的传输地址。如果服务器为 n,将尝试连接到该地址上的调试器应用程序。否则,将在这个端口监听连接。
    suspend
    如果值为 y,目标 VM 将暂停,直到调试器应用程序进行连接。

    要获得每个调试设置的详细解释,请参考 JPDA 文档(参见 参考资料)。

    清单 2 是一个示例,显示如何在调试模式下启动 VM 并监听端口 8765 的套接字连接。


    清单 2. 作为调试服务器的目标 VM
    				
    -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8765
    

    清单 3 显示如何使用位于 8000 端口的主机 127.0.0.1 上的套接字连接运行中的调试器应用程序。


    清单 3. 作为调试客户机的目标 VM
    				
    -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000
    


    Eclipse 中的远程调试特性

    Eclipse 是一个图形化 Java 调试器前端。JDI 在 org.eclipse.jdt.debug 包中实现。本文不详细讨论 JDI 实现。参见 参考资料 获得关于 Eclipse JDT 和 Java JDI 技术的信息。

    我们首先应该知道要使用哪个 Eclipse 连接器。要了解 Eclipse 提供的远程连接类型,您可以转到 Eclipse 菜单并选择 Run > Debug Configurations...,在Remote Java Application 中添加一个启动配置,然后从下拉列表中选择连接器。在 Ganymede 中共有两个连接器:

    • Socket Attach
    • Socket Listen

    对于监听套接字的连接器,Eclipse VM 将是与远程 Java 应用程序连接的主机。对于连接套接字的连接器,目标 VM 将作为主机。这两种连接器对应用程序调试没有影响,用户可以任意选择。但根据经验,需要使用速度更快、更强大的计算机作为 VM 调试主机,因为需要计算的资源很多。

    在调试 Java 应用程序之前,需要确保已经为远程应用程序启用所有调试选项。如果选项信息不可用,您将收到一个错误信息,比如 “Debug information is not available” 或 “Unable to install breakpoint due to missing line number”。您可以通过更改 Eclipse 菜单上的Window > Preferences > Java > Compiler 来修改设置。


    图 1. Eclipse 中的调试选项
    Eclipse 中的调试选项


    远程调试应用程序

    现在,我们已经准备好远程调试应用程序。我们分步执行:

    1. 使用简单类创建一个 Java 项目
    我们为调试创建一个简单类。清单 4 给出了示例代码。

    清单 4. 调试示例代码
    				
    package com.ibm.developerWorks.debugtest;
    
    public class test {
    
    public static void main(String[] args) {
    System.out.println("This is a test.");
    }
    }
    

    2. 设置一个断点
    在代码中设置一个断点。在这个例子中,我们在 System.out.println("This is a test."); 这行中设置断点。

    图 2. 在 Eclipse 中设置断点
    在 Eclipse 中设置断点
    3. 从本地调试应用程序
    在调试应用程序之前,确保已经为项目启用图 1 中描述的调试选项。从本地调试应用程序是没有必要的,但是这可以确保是否所有调试信息都可用。右键单击 Java 项目,并选择Debug As,然后选择Java Application(参见图 3)。如果应用程序在断点处停止执行,则表明调试信息正确显示。这时,可以继续使用这些调试特性,比如显示调试堆栈、变量或断点管理等等。

    图 3. 从本地调试应用程序
    从本地调试应用程序
    4. 导出 Java 项目
    我们将使用这个应用程序作为调试目标。右键单击 Java 项目,选择 Export,然后选择 Java,最后选择JAR fileRunnable JAR file 导出项目。将在指定的位置生成 JAR 文件。注意,如果 Java 源代码与目标应用程序不匹配,调试特性将不能正常工作。
    5. 手动运行 Java 应用程序
    打开控制台手动启动应用程序,确保正确配置了 Java 运行时环境。

    清单 5. 调用 Java 应用程序的示例
    				
    java -jar test.jar
    

    6. 远程调试应用程序
    将 JAR 文件复制到远程计算机或同一台计算机上的适当位置,调用调试服务器,然后为它添加一个客户机。简单的 Java 应用程序就可以充当调试服务器或客户机。您可以在 Eclipse 中选择Socket AttachSocket Listen 连接类型,这取决于特定的配置。接下来的两个小节将学习如何将应用程序作为服务器或客户机运行。

    作为调试服务器的目标 VM

    下面这个示例远程调用 Java 应用程序作为调试服务器,并在端口 8000 监听套接字连接。目标 VM 将暂停,直到调试器连接。


    清单 6. Eclipse 连接套接字模式下的 VM 调用示例
    				
    java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="8000" -jar 
         test.jar 
    

    使用远程启动配置启动 Eclipse,并指定远程应用程序的目标 VM 地址。为此,单击 Run > Debug Configurations,然后在 Eclipse 菜单中双击Remote Java Application。从最新创建的启动配置中为目标应用程序指定 IP 和端口。为了在同一台机器上运行远程应用程序,仅需将主机 IP 指定为 localhost 或 127.0.0.1。


    图 4. 连接套接字连接的配置
    连接套接字连接的配置

    选择 Allow termination of remote VM 选项终止在应用程序调试期间连接的 VM。


    图 5. Eclipse 中的 Terminate 按钮
    Eclipse 中的 Terminate 按钮

    作为调试客户机的目标 VM

    第二个示例使用一个简单的 Java 应用程序作为调试客户机,并且调试器前端作为调试服务器。Eclipse 使用套接字监听模式连接类型进行监听。必须先启动调试前端来监听特定的端口。图 6 给出一个用于设置监听的示例配置。


    图 6. 监听套接字连接的配置
    监听套接字连接的配置

    单击 Eclipse Debug 按钮,状态栏将显示消息 “waiting for vm to connect at port 8000...”。看到这个消息后,启动远程应用程序。清单 7 显示了如何将 Java 应用程序作为调试客户机并调用它,然后使用端口 8000 上的主机 127.0.0.1 的套接字将其连接到一个正在运行的调试器应用程序。


    清单 7. Eclipse 监听套接字连接模式中的 VM 调用示例
    				
        java -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y 
             -jar test.jar 
    

    如果一切进行顺利,将会显示一个调试透视图帮助调试应用程序,并且远程 Java 应用程序将正常停止。这类似于步骤 3 中的本地调试(参见图 3)。在这里,您可以使用标准的调试特性,比如设置断点和值、单步执行等。


    何为远程调试?

    我们一般调试一个 web项目的java代码时,需要将你的tomcat服务器和你的开发工具(比如Jbuilder)集成,或需要工具的一些插件支持(比如Eclipse 下的myclipse等),这些方式都是在本地进行,即你的开发工具和tomcat运行在同一台服务器上,如果你的开发工具和服务器不再一台机器上那就需要实现远程调试功能了。

    实现方法:
    在tomcat的catalina.bat文件中加入下面的设置,当然SET CATALINA_OPTS 变量应该在使用它之前。这是在tomcat启动时设置一些虚拟机参数,使服务器允许远程连接功能,address=5888表示远程连接的端口号,可以设 置成任意其他不冲突端口。其他的应用服务器比如weblogic也应该可以设置这些参数,有兴趣的可以测试。

    SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5888
    这 样就Ok了,重启动tomcat,可以直接独立启动,而不用在eclipes的插件中启动。打开eclipse中的debug设置窗口,选择Remote Java Application ,新建一个debug项,输入服务器IP和刚才设置端口号,点ok就可以进入debug状态了。Jbuilder中同样可以设置Remote Java Application。

    How do I configure Tomcat to support remote debugging?  http://www.blogjava.net/hama/archive/2007/02/06/98158.aspx

    用Eclipse远程调试(Remote debug)Tomcat





    结束语

    本文演示如何使用 Eclipse 内置的远程 Java 应用程序配置类型对应用程序执行远程调试。介绍了如何设置 Java 应用程序以调用远程调试,并帮助您理解 Eclipse 提供的连接器。最后,您还学习了如何将这些技术应用到项目中。


    参考资料

    学习

    获得产品和技术

    讨论

    • Eclipse Platform 新闻组 应当是讨论关于 Eclipse 的问题的第一站(选择此链接将启动默认的 Usenet 新闻阅读器应用程序并打开 eclipse.platform)。

    • Eclipse 新闻组 为对使用和扩展 Eclipse 感兴趣的人员提供了许多参考资料。

    • 参与 developerWorks blogs 并加入 developerWorks 社区。

    关于作者

    Charles Lu 是 IBM China Software Development Lab 的软件开发人员,目前从事 IBM Lotus Expeditor 的开发。他感兴趣的领域包括设备编程、即时消息和语音技术。

    http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/
    展开全文
  • eclipse上开发Android应用程序

    千次阅读 2010-07-02 00:46:00
    <br />Android中文文档:开发和调试(eclipse) 2009-12-18 22:13   在用eclipse IDE开发android应用程序之前,你首先要创建一个Android工程,并且建立一个启动配置,在此之后你才可以开始编写,...

    Android中文文档:开发和调试(eclipse)

    2009-12-18 22:13

     

    在用eclipse IDE开发android应用程序之前,你首先要创建一个Android工程,并且建立一个启动配置,在此之后你才可以开始编写,运行,以及调试你的应用程序。

     

    以下章节是假设你已经在eclipse环境中安装了ADT插件,如果你没有安装,请安装之后再使用以下说明。参考 安装eclipse 插件(ADT)

     

    创建一个android工程

    ADT提供了一个新的工程向导,你可以快速的创建一个新的工程或者在现有代码上创建工程。创建工程的步骤如下:

     

    选择File > New > Project

    选择 Android > Android Project, 然后按下 Next

    选择项目内容:

    选择 Create new project in workspace, 为编码创建一个全新的工程。

    输入工程名称(project name),基础软件包的名称(the base package name),以及Activity 类的名称。以创建stub .java文件等文件和程序名字。

     

    选择Create project from existing source ,为已有代码创建一个工程。如果你想编译运行SDK中提供的示例程序,可以使用这个选项。示例程序的存放在SDK的samples/目录下。

    浏览包含已有代码的目录,点击ok,如果目录中包含有可用的android manifest 文件,ADT将为你填写合适的软件包,activity,和应用程序名称。

     

    按下Finish.

    ADT插件会根据你的工程类型创建合适的文件和文件夹,如下:

     

    src/ 包含stub .java Activity文件的文件夹.

    res/ 资源文件夹.

    AndroidManifest.xml 工程清单.

     

    创建一个启动项

    能够在eclipse上运行调试应用程序之前,你必须为它创建一个启动项。启动项指定哪个工程将被启动,哪个activity开始工作,以及使用哪些模拟器选项等。

     

    按照以下步骤为Eclipse版本的应用程序创建合适的启动项:

     

     

    打开启动项管理工具。

    在 Eclipse 3.3 (Europa)的版本中,酌情选择 Run > Open Run Dialog... or Run > Open Debug Dialog... 。

    在Eclipse 3.4 (Ganymede)版本中,酌情选择 Run > Run Configurations... or Run > Debug Configurations... 。

    在左边的工程类型列表选择Android Application选择,双击(或者点击右键选择new),创建一个新的启动项。

    输入启动项名称。

    在 Android标签中,浏览要开始的工程和Activity 。

    在Target标签中,设置想要显示的屏幕及网络属性,以及其他任何模拟器启动选项。

    你可以在Common标签中设置更多的选项.

    按下Apply保存启动配置,或者按下Run或Debug()。

     

     

    运行和调试应用程序

    一旦你设定了工程和工程启动配置,你就可以按照以下的说明运行和调试应用程序了。

     

    从eclipse主菜单,根据情况选择Run>Run 或者 Run>Debug,开始运行或者调试活动启动项。

     

    注意,这里活动启动项是在运行配置管理中最最近一次选中的那个。它不一定就是在Eclipse Navigation 面板中选择的程序(如果有的话)

     

    设置和修改活动启动项,可以使用启动项管理工具。如何获得启动项管理工具可以参考创建一个启动项

     

     

    运行或调试应用程序将触发以下动作:

     

    启动模拟器,如果他还没有开始运行。

    编译工程, 如果在上次编译的基础上修改过代码,将重新编译。在模拟器上安装应用程序。

    Run选项,开始运行程序。

    Debug 在"Wait for debugger "模式下启动程序,然后打开调试窗口并将Eclipse Java调试器和程序关联。

     

    利用其他IDEs和工具开发Android应用程序

     

    通常我们使用安装有ADT插件的eclipse Eclipse with the ADT plugin.来开发Android程序,这个插件将编辑,build和调试功能集成到IDE上。

     

    然而,如果你想在其他的IDE上开发程序,例如IntelliJ,或者使用没有ADT插件的eclipse也可以。SDK提供了安装,编译,调试应用程序所需要的工具。

     

    创建一个android工程

    Android SDK包含一个activityCreator的程序,它将为工程产生多个stub文件和一个build文件。你可以用这个程序创建一个新的 Android工程或者在现有代码上创建工程,如SDK中包含的例子。对于Linux 和Mac系统,SDK提供activityCreator.py,一个 Python脚本,Windows上则是activityCreator.bat一个批处理脚本。无论是哪种平台,用法是一样的。

     

    按以下步骤运行activityCreator创建Android工程:

     

    在命令行下,切换到SDK下的tools/目录下,为你的工程文件新建一个目录。如果你是在现有代码上创建工程,切换到程序的根目录下。

    运行activityCreator。在命令行下,你必须指定完全合格的类名作为参数。如果你是创建一个全新的工程,这个类代表的与它同名的stub类和脚本文件。如果是在现有代码上创建工程,必须指定软件包中其中一个Activity类的名称。 命令选项的脚本包括:

    --out <folder> 设定输出目录。默认情况下输出目录为当前目录。如果你想为工程文件创建一个新的目录,可以使用这个选项来指向它。

    --ide intellij, 在一个新的项目中生成IntelliJ IDEA 工程文件。

    这里有个例子:

     

    ~/android_linux_sdk/tools $ ./activityCreator.py --out myproject your.package.name.ActivityName

    package: your.package.name

    out_dir: myproject

    activity_name: ActivityName

    ~/android_linux_sdk/tools $

    activityCreator脚本生成以下文件和目录(但是不能重写已有文件):

     

    AndroidManifest.xml 程序的清单文件,同时为工程指定Activity类。

    build.xml 一个Ant文件,用来编译/打包应用程序。

    src/your/package/name/ActivityName.java 你指定的输入Activity类。

    your_activity.iml, your_activity.ipr, your_activity.iws [only with the -ide intelliJ flag] intelliJ工程文件

    res/ 资源目录.

    src/ 源代码目录.

    bin/ build脚本的输出目录.

     

    现在你可以将开发文件夹移到任何地方,但是记住,必须使用tool/文件夹下的adb程序将文件发送到模拟器上。因此你需要在你工作环境和tools/文件夹之间活动。

     

    当然你需要避免移动SDK目录,因为它将打断编译脚本。(再重新build之前需要手动更新SDK的映射路径)

     

     

    编译 android应用程序

    使用activityCreator生成的Ant文件build.xml来编译程序

     

    如果你没有,你可以通过Apache Ant home page得到Ant文件。安装它,并确定它在你的可执行文件路径下。

    呼叫Ant之前,你需声明JAVA_HOME环境变量,并将它设置为JDK的安装路径。

    注意:在windows上,JDK默认的安装路径为"Program Files",这个路径将会引起Ant失败,因为路径中间有空格。解决这个问题,你可以像这样指定环境变量 JAVA_HOME:JAVA_HOME=c:/Prora~1/Java/ 然而简单的解决方法是将JDK安装在没有空格的目录下。例如:c:/java/jdk1.6.0_02. 

     

     

    如果你还没有这么准备好,按照上面创建一个新的工程的介绍建立一个工程。

    现在你可以为你的工程运行Ant编译文件,只需在build.xml同文件夹下输入ant即可。每次修改原文件或是资源,都需要重新运行ant,它将把最新版的应用程序打包以便deploy.

     

    运行Android程序

    运行一个编译好的程序,你需要用adb工具将.apk文件加载到模拟器的/data/app/目录下,用法如下面介绍。

     

    启动模拟器(命令行下运行sdk目录下的/tools/emulator)。

    模拟器切换到主画面(最好不要在程序运行的时候向模拟器安装程序,可以按home键离开应用程序)。

    运行adb,安装myproject/bin./<appname>.apk文件。例如,安装Lunar Lander 示例,命令行下,切换到SDK目录下的/sample/LunarLander子目录下,输入../../tools/adb install bin/LunarLander.apk

    在模拟器中,打开可执行程序列表,卷动屏幕,选中并启动你的应用程序。

    注意:当你第一次安装一个Activity时,你可能需要在启动项显示之前,或者其它程序调用它之前重新启动模拟器。因为软件包管理工具通常只有在模拟器启动时才能完全的审查manifests。

     

    为程序附加调试器

     

    这一节我们介绍如何在屏幕上显示调试信息(例如CPU使用率),以及如何将IDE和模拟器上运行的程序关联起来。

     

    使用eclipse插件可以自动的生成调试器。但你也可以通过配置IDES来监听调试端口得到调试信息。

     

    启动Dalvik Debug Monitor Server (DDMS) 工具 ,它在IDE和模拟器之间扮演着端口转换服务的角色。?

    设置模拟器调试配置选项。例如,等到调试信息被加载后才启动应用程序。注意,很多调试选项无需DDMS也可以使用,例如模拟器上显示CPU的使用效率,或者屏幕的刷新频率。

    配置IDE,使得调试时IDE与8700端口关联 .how to set up Eclipse to debug your project. 包含以下信息。

     

    配置IDE附加调试端口

    DDMS将为每一个虚拟机分配一个特殊的调试端口,这个端口在模拟器上可以找到。你必须将你的IDE与此端口(虚拟机上信息栏中有列出这些端口)关联或者是默认的端口8700。这样可以使IDE 连接到模拟器上程序列表中的任一个程序。

     

    你的IDE需要能够关联模拟器上正在运行的程序,显示它的线程,并允许你挂起它,检查它的状态,设置断点。如果你在开发设置面板选择了“等待调试”,应用程序将等到Eclipse连接后才运行,所以你需要在连接之前设置断点。

     

    修改正在调试的程序,或者在当前程序运行时选择“等待调试”将引起系统杀死这个应用程序。如果你的程序处于一种坏的状态,你可以使用方式杀死它,方法很简单,只需要设置和钩掉复选框。

     

    应用程序签名

    Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序。不管是模拟器还是真实设备,只要是android系统,这都适用。鉴于此原因,在设备或者是模拟器上运行调试程序之前,你必须为你的应用程序设置数字签名。

     

    理解android程序签名的重要几点::

     

    所有的程序都必须签名,没有被签名的程序,系统将不能安装。

    你可使用自签署证书签署你的应用程序,必须是无凭证授权是的。

    系统仅仅会在安装的时候测试签名证书的有效期,如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用。

    你可以使用标准工具-Keytool and Jarsigner-生成密钥,来签名应用程序的.apk文件。

    Android SDK 工具可以帮助你在调试时给应用程序签名。ADT插件和Ant编译工具都提供了两种签名模式-debug模式和release模式

     

    debug模式下,编译工具使用JDK中的通用程序Keytool通过已知方法和密码创建秘锁和密钥。每次编译的时候,工具使用debug密钥签名应用程序的.apk文件。因为密码是已知的,工具不需要在每次编译的时候提示你输入密锁和密钥。

    当你的应用程序已经准备release了,你可以在release 模式下编译。release模式下,工具编译时不会将.apk文件签名。你需要用Keytool生成密钥和密锁,再用JDK中的Jarsigner工具给.apk文件签名。

     

     

    签名基本设置

    为了支持生成密锁和密钥,你首先要确定Keytool在SDK编译工具中是有效的。在很多情况下,你可以设置JAVA_HOME环境变量,告诉SDK如何找到Keytool,或者你可以在PATH变量中添加Keytool的JDK版本。

     

    如果你是在linux版本中开发,原本是来自Java Gnu编译器,请确定系统用的是Keytool版本的JDK,而不是gcj版本的。如果Keytool已经在PATH中,它将指向符号连接/usr /bin/keytool。这种情况下,核实符号连接的目标是指向JDK下的Keytool

     

    Eclipse/ADT中的签名

    如果你是在Eclipse下开发,并已经按照上面所介绍的安装了Keytool,默认情况下是可以在debug模式下签名的。当你运行调试程序的时候ADK将给.apk文件签名,并安装到模拟器上。这部分不需要特殊的动作,ADT已经进入Keytool

     

    在 release模式下编译程序,在Package面版上按project右键,选择Android Tools>Export Application Package.或者你可以点击Manifest Editor, overview 页面上的“Exporting the unsigned .apk”连接 ,导出未签名apk文件。保存.apk文件之后,用Jarsigner及你自己的密钥给apk文件签名,如果没有密钥, 你可以用Keystore创建密钥和密锁。如果已经有一个密钥了,如公共密钥,就可以给.apk文件签名了。

     

    Ant签名

    如果用Ant编译.apk文件,假设你使用最新版的SDK中包含的activitycreator工具生成build.xml文件,默认情况下可以使用 debug签名模式。当你运行Ant对build.xml编译程序,build脚本将生成密锁和密钥并签名.apk文件。这部分不需要做其它特殊的动作。

     

    release模式下编译程序,你需要做的是在Ant命令中指定编译目标“release”。例如,如果是在bulid.xml所在目录下运行ant,输入以下命令:

     

    ant release

     

    build脚本编译程序时并没有签名。编译完.apk文件后,你需要用Jarsigner和你自己的密钥给.apk文件签名。如果没有密钥, 你可以用Keystore创建密钥和密锁。如果已经有一个密钥了,如公共密钥,你就可以给.apk文件签名了。

     

    调试证书期限

    自签名证书用于程序的debug模式下(默认情况下是Eclipse/ADT 和Ant builds),自它创建时间起有一年的期限。

     

    当证书到期时,将会有编译错误。 And下错误显示如下:

     

    debug:

    [echo] Packaging bin/samples-debug.apk, and signing it with a debug key...

    [exec] Debug Certificate expired on 8/4/08 3:43 PM

    在Eclipse/ADT下,你可以看到类似的错误。

     

    解决这个问题的简单方法是删除debug.keystore文件。Linux/Mac OSX下这个文件保存在~/.android下,windows XP下,文件保存在 C:/Documents and Settings/<user>/Local Settings/Application Data/Android。windows Vista下文件保存在 C:/Users/<user>/AppData/Local/Android。

     

    下次编译时,编译工具将生成新的密锁和密钥。

     

    注意:如果你的开发设备使用的是non-Gregorian locale,编译工具经常错误的生成一个过期的调试证书,因此编译的时候你会得到错误提示。 对于解决信息,请参见疑难解答专题 I can't compile my app because the build tools generated an expired debug certificate.

     

     

    使用ApiDemo示例应用程序

    Android SDK包含了一套示例程序,他们验证了许多功能以及API的用法。ApiDemos软件包被提前安装在模拟器中,所以你可以启动模拟器,在主画面的应用程序抽屉里打开它。

     

    你也可以在<SDK>/samples/ApiDemos中找到源码,可用看看它,学习Demo的实现方法。

     

    如果你愿意,你还可以将ApiDemo的示例程序作为一个工程加载进来,修改并在模拟器上运行。然而,在这之前你首先要卸载之前已经安装的ApiDemos。如果你没有移除之前安装的版本而直接在开发环境中运行或修改ApiDemos,将会有安装错误。

     

    关于如何卸载和重装ApiDemo,可以参考I can't install ApiDemos apps in my IDE because of a signing error.这样你就可以在你的开发环境中工作了。

     

    调试

    Android有相当广泛的一套工具帮助你调试你的应用程序:

     

    DDMS -一个生动的程序,它支持端口转换(因此你可以在IDE中给你的代码下端点),支持抓取模拟器屏幕,线程和堆栈信息,以及许多其他功能。你还可以运行logcat重新获得Log信息。点击此连接查看更多信息。

    logcat- 转储系统信息,这些信息包括,模拟器抛出错误时堆栈的运行过程以及日志信息。运行logcat,点击此连接。

    ...

    I/MemoryDealer( 763): MemoryDealer (this=0x54bda0): Creating 2621440 bytes heap at 0x438db000

    I/Logger( 1858): getView() requesting item number 0

    I/Logger( 1858): getView() requesting item number 1

    I/Logger( 1858): getView() requesting item number 2

    D/ActivityManager( 763): Stopping: HistoryRecord{409dbb20 com.android.home.AllApps}

    ...

    Android Log - 输出模拟器上log文件信息日志类。如果你在DDMS上运行了logcat,你可以实时阅读这些信息。在你的代码中添加logging方法的调用。使用 log类,你可以根据你想获得信息的重要程度不同调用Log.v(verbose),Log.d()(debug),Log.i() (information),Log.w()(warning)或者Log.e(error).来分派log信息Log.i("MyActivity", "MyClass.getView() — Requesting item number " + position)

    你可以用logcat阅读这些信息。

     

    Traceview - Android可以将函数的调用情况以及调用时间保存到一个log文件中,你可以用图形阅读器Traceview查看详细内容。更多信息查看这个连接下的主题

    Eclipse plugin -Eclipse插件整合了相当数量的工具(ADB,DDMS,logcat output, 以及其它功能),点击此连接查看更多信息。

    Debug and Test Device Settings -Android揭示了很多有用的设定,例如CPU使用率和 帧速率,参看下面的 Debug and Test Settings on the Emulator

    Also, see the Troubleshooting section of the doc to figure out why your application isn't appearing on the emulator, or why it's not starting.

     

    此外,参看疑难解答这一节文档,以找出您的应用程序为什么没有出现在模拟器上,或为什么不开始。

     

     

     

    设备上的调试和测试设置

    Android允许你设置多个设定以便你测试和调试程序。获得模拟器的开发设置,可以选择Dev Tools>Development Settings。 按照以下选项将打开开发设置页(或其中之一):

     

    Debug app 选择要被调试的程序,你不需要设置这个来关联调试器,但是这个变量有两个作用:

    防止Android在调试的断点处长时间停留时抛出错误。

    允许你选择Wait for Debugger选项来暂停程序启动,直到调试器被关联上(如下介绍)

    Wait for debugger 阻塞程序加载直到关联上调试器。这样你可以在onCreate()中设置端点,这在调试Activity的启动进程时很重要。当你改变这个选项,任何当前运行的程序实例将被杀死。为选中此框,你必须如上面介绍的选择一个调试程序。这和在代码中添加waitForDebugger()是一样的。

    Immediately destroy activities 告诉系统只要activity停止了就销毁它。 (犹如 Android必须回收内存). 这个在测试 onSaveInstanceState(Bundle) / onCreate(android.os.Bundle)代码路径 时非常有用, 否则将难以生效.选择这个选项可能带来很多问题,因为他们没有保存程序的状态。

    Show screen updates 选中这个选项时,屏幕上任何被重绘的矩形区域会闪现粉红色。这对于发现屏幕不必要的绘图很有用。

    Show CPU usage 在屏幕顶端显示一个CPU进度,显示CPU的使用情况。 上面红色栏显示总的CPU使用率,下方绿色栏显示目前画面的CPU使用时间。注意:一旦打开次功能就不能关掉,除非重新启动模拟器。???

    Show background 没有activity屏幕显示时显示背景面板,这个通常在调试的时候才会发生。

    模拟器重起后这些设置仍被记忆。

     

    顶端调试技巧

     

    快速堆栈转储

    从模拟器上获得堆转储,你可以登录adb shell,用"ps"命令找到你想要的进程,然后用"kill-3",堆栈使用轨迹将显示在log文件中。

    在模拟器屏幕上显示有用信息

    设备可以显示一些有用信息,例如CPU使用率,以及高亮显示重绘区域。可以在开发设定窗口打开和关闭这些功能。Setting debug and test configurations on the emulator.中有详细介绍。

    你可以通过Dalvik Debug Monitor Service工具获得转储状态信息。请参考adb中介绍的dumpsys and dumpstate

    获得模拟器中应用程序状态信息(dumpsys)

    你可以通过Dalvik Debug Monitor Service工具获得dumpsys信息。参考adb中介绍的dumpsys and dumpstate 。

    获得无线连接信息

    你可以通过Dalvik Debug Monitor Service工具获得无线连接信息。在Device菜单中选择"Dump radio state"

    记录跟踪数据

    你可以在activity中通过调用android.os.Debug.startMethodTracing()来记录函数的调用以及其它跟踪数据。详细的参考Running the Traceview Debugging Program 。

    记录无线数据

     

    默认情况下系统不记录无线数据(数据很多)。然而,你可以用下面的命令记录无线数据:

    adb shell

    logcat -b radio

     

    运行adb

    Android 有adb工具,他提供了许多功能,包括移动和同步文件到模拟器上,改变端口,在模拟器上运行 UNIX shell。 详见Using adb。

    获得模拟器屏幕截图

    Dalvik Debug Monitor Server (DDMS)可以抓取模拟器屏幕截图。

     

    使用调试帮助类

    Android为方便使用提供了调试帮助类,例如util.Log 和 Debug

    编译安装Anroid应用程序

    Android要求专门的编译工具可以正确的编译资源文件和应用程序的其他部分,因此,你必须为你的应用程序建立一个专门的编译环境。

     

    专门Android编译器编译步骤包括,编译XML和其他资源文件并创建合适的输出格式。编译好的Android应用程序是一个.apk压缩文件,它含有.dex文件,资源文件,原data文件,以及其他文件。你可以通过scratch,或者源文件构造一个合适的Android工程。

     

    Android目前不支持的在本地代码上开发第三方应用程序。

     

    比较推荐的Andriod应用程序开发方法是use Eclipse with the Android plugin,它支持编译,运行,调试Android应用程序。

     

    如果你还有其他IDE,Android provides tools for other IDEs 可以编译运行Android应用程序,但是他们不是很完整。

     

    移出一个Android应用程序

    移出一个安装在模拟器上的应用程序,你需要执行adbrun adb删除.apk文件。.apk文件是在安装的时候发送到模拟器上的。使用adb shell进入设备的shell,切换到data/app目录下,用rm命令删除apk文件 :rm your_app.apk。用法在连接中介绍。

     

    Eclipse技巧

    在Eclipse上执行任意java代码

    在 Eclipse上,当程序停在断点处时你可以执行任意代码。例如,在一个含有“zip”字符串参数的函数中,你可以获得软件包信息,调用类方法。你也可以执行任意静态方法:如,输入 android.os.Debug.startMethodTracing() ,启动 dmTrace。

     

    打开代码执行窗口,主菜单中选择Window>Show View>Display,打开显示窗口,一个简单的文本编辑器。输入你的代码,高亮显示文字,单击'J'图标(或者CTRL + SHIFT + D)运行代码。代码在被选线程的上下文中运行,而这个线程必须是停在断点处或者单步停止点。(如果你手动挂去线程,你必须单步执行。线程停在Object.wait()是没有用的)。

     

    如果你目前是停在断点,你可以简单的按下(CTRL + SHIFT + D)高亮并执行一段代码。

     

    你可以高亮同一选中区域的文字,通过按下 ALT +SHIFT + 向上/向下箭头来改变所选区域的大小

     

    下面是一些例子,输入内容和eclipse 显示窗口的回应信息。

     

    Input Response

    zip (java.lang.String) /work/device/out/linux-x86-debug/android/app/android_sdk.zip

    zip.endsWith(".zip") (boolean) true

    zip.endsWith(".jar") (boolean) false

     

    你也可以利用剪贴板在不调试时插入执行代码。在eclipse文档中查找"scrapbook"相关。

     

    手动运行DDMS

    虽然推荐用ADT插件调试程序,但是你也可以手动运行DDMS,配置Eclipse以便在8700端口上调试程序(注意:首先确定你启动了DDMS)。

     

    增加JUnit测试类

    在Eclipse/ADT ,你可以在程序中添加JUnit测试类,然而,测试运行正常之前你需要设置专门的JUnit 配置,

     

    关于如何设置JUnit配置的详细细节,参看请参见疑难解答专题I can't run a Junit test class in Eclipse。

    展开全文
  • 使用Eclipse开发Android应用程序

    千次阅读 2020-06-30 13:26:25
    本教程介绍了Eclipse环境中的Android应用程序开发,包括两个示例应用程序的构建。 第一个是基本的入门应用程序,包括构建和调试的所有阶段。 第二个应用程序检查了Android的更复杂功能,包括联系人搜索和Google Maps...
  • Eclipse Callisto TPTP分析应用程序

    千次阅读 2007-03-05 19:57:00
    使用Eclipse Callisto分析应用程序 时间:2006-11-22作者:John Ferguson Smart浏览次数: 1196 本文关键字:IDE, Java, EclipseEclipse Callisto, profiling, performance, TPT
  • Eclipse上开发IBM Bluemix应用程序

    千次阅读 2015-12-20 16:51:44
    本文主要讲解了如何使用Eclipse安装IBM Bluemix插件,并在Eclipse上开发应用程序实时发布个人Bluemix中心。
  • 这两天在eclipse上写web应用程序,将mysql的jdbc驱动包导入到程序中之后,在浏览器中访问该web应用,当运行Servlet到连接数据库的部分时一直出现com.mysql.jdbc.Driver找不到的问题。 我的classpath设置是OK的,...
  • Eclipse开发Android应用程序入门

    万次阅读 2012-08-06 20:06:37
    Eclipse开发Android应用程序入门 By Chris Blunt 翻译:赵锟 原文出处:http://www.smashingmagazine.com/2010/10/25/get-started-developing-for-android-with-eclipse/ 如今的...
  • Eclipse中开发struts应用程序

    千次阅读 2004-10-15 12:35:00
    一. 下载并安装Easy Struts包1. Easy Struts是开放源代码组织sourceforge.net上的一个项目,目前最新的版本是0.64,可以在它的网站http://sourceforge.net/projects/easystruts上下载... 将下载后的压缩包解压{E
  • Eclipse 开发 Android 应用程序

    千次阅读 2011-02-11 16:57:00
    开始之前本教程介绍如何在 Eclipse 环境中进行 Android 应用程序开发,包括两个示例应用程序。第一个示例是一个基本的应用程序,涉及构建和调试的所有阶段。第二个应用程序示例涉及比较复杂的 Android 特性,包括...
  • Eclipse 开发 iPhone Web 应用程序

    千次阅读 2008-03-12 10:00:00
    Adam Houghton (adam@adamhoughton.com), 高级软件开发人员, SAS Institute, Inc.2008 年 3 月 05 日学习如何使用 Eclipse、Aptana 的 iPhone Development 插件及 iUi 框架创建 iPhone Web 站点。了解如何开发 ...
  • 使用eclipse编写Hadoop应用程序

    千次阅读 2011-10-30 13:58:16
    之前一直不能运行成功好像就是创建了自己的包,错误提示找不到Class。后来重新创建类在默认的包中,运行成功。 2)配置编译参数 配置“Build Path”,选中“DFSOperator”,单击右键,点击下图所示菜单“B
  • genymotion不要使用genymotion自带的sdk,要使用eclipse中的sdk
  • Eclipse开发BlackBerry应用程序

    千次阅读 2010-03-29 19:07:00
    基本开发环境的搭建: 如果要为黑莓手机开发Java应用程序,那么我们有两套开发环境可以选择,一个是RIM自己提供的JDE,一个是用eclipse加JDE插件。大多数Java开发者应该对Eclipse比较熟悉啦,所以我也义无反顾的...
  • 系统应用程序导入Eclipse

    千次阅读 2011-12-10 16:26:19
    首先,将要修改的应用程序,从alps(源码根路径)\packages\apps目录下拷贝本地机子上,然后在Eclipse新创建一个Android项目,选择Create project from existing source引进该应用程序,如图: 一般情况下,只需要...
  • J2EE Enterprise Application企业应用程序包含EJB、WEB EJB:Eclipse+Wildfly10 创建第一个EJB项目 WEB:同时部署在wildfly下的Web访问EJB 使用Eclipse(IDE是 Red Hat JBoss Developer Studio 11.0.0.GA)创建...
  • 如何用 Eclipse 调试 Perl 应用程序

    千次阅读 2010-09-29 13:38:00
    如何用 Eclipse 调试 Perl 应用程序8/14/2010 11:30:36 PM开始之前  本教程将介绍 Eclipse 的 EPIC 插件提供的调试功能,该插件提供了功能丰富的调试环境 —— 可为 EPIC Perl 开发环境所用且与此开发环境相...
  • 根据我在Eclipse中进行jdbc连接mysql时踩过的坑总结了以下三个注意点: 1.Build Path: 下载适合的mysql jar包形如: 在eclipse中你所创建的项目单击右键→Build Path→Configure Build Path→Libraries→Add ...
  • 解决eclipse连接不到genymotion的问题

    千次阅读 2015-01-14 10:08:12
    (1)很多朋友在使用genymotion开发安卓应用程序的时候,会遇见完全正确的安装但是在运行的时候仍然找不到,genymotion上的设备,在打开的devices上找不到如下图所示: (2)解决的方法如下: 1、关闭eclipse...
  • Eclipse运行项目找不到main方法

    万次阅读 2017-02-22 14:29:04
    今天难得用Eclipse来测试Spring居然碰到了这种问题:错误: 在类 com.mycompany.ioc.TestIoc 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展...
  • scala eclipse sbt 应用程序开发

    万次阅读 2014-08-04 01:29:38
    Eclipse里利用Sbt构建开发Scala程序的一般步骤,并用实例讲解了整个流程。
  • Ubuntu下eclipse开发hadoop应用程序环境配置 第一步:下载eclipse-SDK-4.2.1-linux-gtk.tar.gz http://mirrors.ustc.edu.cn/eclipse/eclipse/downloads/drops4/R-4.2.1-201209141800/eclipse-SDK-4.2
  • 利用Eclipse开发Hibernate应用程序

    万次阅读 2004-11-15 18:03:00
    利用Eclipse开发Hibernate应用程序bromon原创 请尊重版权 Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境,Hibernate也是目前牛叉得不得了的框架,至少在EJB 3大行其道...
  • 用 Tomcat 和 Eclipse 开发 Web 应用程序

    千次阅读 2009-06-21 11:45:00
    用 Tomcat 和 Eclipse 开发 Web 应用程序Apache Tomcat & Eclipse 平台是一款杰出的 Web 开发平台级别: 中级Nathan A. Good (mail@nathanagood.com), 作家兼软件工程师, Consulta

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 160,142
精华内容 64,056
关键字:

eclipse找不到应用程序