我想在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方法?
答案 0 :(得分:4)
如果private
方法(应该通过执行主方法检查)可以提取到另一个类,那么手头的问题还有另一种选择。这当然意味着该方法突然变得至少protected
。
但是如果该方法在不是从android.app.Activity派生的类中定义,则可以定义主方法。您只需调整Eclipse中的运行配置。
答案 1 :(得分:2)
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.