如何运行Android Activity类的main方法?

时间:2012-06-03 07:48:14

标签: java android

我想在Activity的 public static void main(String [] args)中执行 Android Activity 的私有方法我创建的方法。

我使用 Eclipse ADT ,并且我将 Activity 作为 Java应用程序运行的天真方法导致:

  

Java运行时环境检测到致命错误:
  内部错误(classFileParser.cpp:3174),pid = 2936,tid = 2980
  错误:ShouldNotReachHere()

所以我查看了运行配置,发现 Android 3.1 Bootstrap Entries 部分中的唯一条目类路径即可。我设法配置项目的构建路径,以便 JRE 也在引导程序条目中。然后我删除了 Android 3.1 条目,并将 android.jar 添加到用户条目

执行运行配置的结果是RuntimeException:

  

线程“main”中的异常java.lang.RuntimeException:Stub!
    在android.content.Context。(Context.java:4)

执行某些测试的另一种方法将启动 JUnit 测试。但是在私有方法的情况下,这很麻烦。

有没有办法成功运行Android Activity类的main方法?

3 个答案:

答案 0 :(得分:4)

如果private方法(应该通过执行主方法检查)可以提取到另一个类,那么手头的问题还有另一种选择。这当然意味着该方法突然变得至少protected

但是如果该方法在不是从android.app.Activity派生的类中定义,则可以定义主方法。您只需调整Eclipse中的运行配置

  1. 使用以Java应用程序运行运行该类。这将生成一个名为类
  2. 的新运行配置
  3. 编辑新建的运行配置
  4. 类路径标签
  5. 中的引导条目中删除 Android
  6. 将JRE 6添加到项目的构建路径
  7. 将此JRE添加到 Classpath 标签
  8. 中的 Bootstrap条目
  9. 添加 android.jar ,它位于用户条目 Android SDK 平台目录中 Classpath 标签

答案 1 :(得分:2)

从Android的角度来看,活动非常重要,活动的生命周期是操作系统通过活动生活处理的几种方法的集合。

public void onCreate(Bundle savedBunldeInstance)
一旦启动应用程序创建活动,就会调用

。这是android中应用程序的入口点。您必须拥有运行Android应用的模拟器或物理设备,此处文件为compiled 2 times,一次为java compiler then by dalvik compiler

DVM (Dalvik Virtual Machine)位于Android设备(EMULATOR OR PHYSICAL)上,这就是为什么我们需要模拟器或物理设备来运行它...而onCreate是它的入口点。

根据您的要求,我正在使用其他信息编辑此帖子。下面的行是从http://developer.android.com/

中抽象出来的
 Android applications don't have a single entry point.
 (there's no main() function, for example).

有关详细信息,请单击此处:

http://developer.android.com/guide/topics/fundamentals.html

答案 2 :(得分:0)

主要方法不是Java中的入口点。你想要覆盖

public void onCreate(Bundle savedBunldeInstance) method.