2012-06-03 3 views
5

я хотел бы рассмотреть частный метод в Android деятельности, выполнив его в государственной статической силы основных (String [] арг) деятельность по метод, который я создал.Как запустить основной метод класса активности Android?

Я использую Затмение ADT и мой наивный подход запуска активности как приложение Java привели:

A fatal error has been detected by the Java Runtime Environment:
Internal Error (classFileParser.cpp:3174), pid=2936, tid=2980
Error: ShouldNotReachHere()

Так что я смотрел на Run Configuration и выяснили, что Android 3.1 - единственная запись в Bootstrap Записи раздел Classpath. Мне удалось настроить Путь сборки проекта, так что JRE находится в Записей Bootstrap. Затем я удалил Android 3.1 и добавил android.jar в Записи пользователя.

Результат выполнения Run Configuration является RuntimeException:

Exception in thread "main" java.lang.RuntimeException: Stub!
at android.content.Context.(Context.java:4)

Альтернативой к выполнению некоторых тестов было бы запустить JUnit тест. Но в случае частный метод это громоздко.

Есть ли способ успешно запустить основной метод класса активности Android?

+1

Вы не можете запустить в 'Activity' через главный метод. Проблема с этим заключается в том, что система обрабатывает все конструкции четырех строительных блоков. Если ваш [нетбук работает под управлением Android] (http://www.makeuseof.com/tag/install-android-netbook/), вы не можете этого сделать (но это только мешает вам использовать эмулятор). Что касается тестов JUnit, Android SDK поставляется с инструментом под названием [MonkeyRunner] (http://developer.android.com/guide/developing/tools/monkeyrunner_concepts.html), который вы можете посмотреть. – gobernador

ответ

4

Существует еще один вариант для решаемой задачи, если private метод - который должен быть рассмотрен посредством исполнения основной метод - может быть извлечен в другой класс. Это, конечно, означает, что метод внезапно стал как минимум protected.

Но если метод дефинирован в классе, который не является результатом android.app.Activity, то может быть определен основной метод. Вам нужно только настроить Запустить конфигурацию в Eclipse.

  1. Запуск класса с помощью Запуск приложения Java. Это создает новую конфигурацию с именем, как класс
  2. Edit вновь creaded Run Configuration
  3. Исключить библиотеку Android от Bootstrap записей в вкладке Classpath
  4. Добавить JRE 6 или так, чтобы строить путь проекта
  5. Добавить JRE в Bootstrap записей в вкладке Classpath
  6. Добавить android.jar, который находится в платформ директория Android SDK в пользователя в дневнике в вкладке Classpath
0

Главный метод не является точкой входа в Android, как на Java. Вы хотите переопределить

public void onCreate(Bundle savedBunldeInstance) method. 
+0

Это не позволило бы мне выполнить код внутри onCreate, не запуская эмулятор или физическое устройство, не так ли? Но в этом весь смысл. – rmoestl

+1

Нет. Вы не можете запускать что-либо без эмулятора, потому что у вас нет виртуальной машины Android для вашей архитектуры, например, у вас есть виртуальная машина Java. – snihalani

2

активность очень важна с точки Андроида зрения, жизненный цикл Activity являются коллекции несколько методов, которые обрабатываются операционной системой через из жизни о деятельности.

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 
+0

Спасибо, что рассказали, что происходит за кулисами. Upvoted. Это означает, что использование основного метода в классах активности Android не достижимо с достаточным количеством усилий, не так ли? Не могли бы вы отредактировать свой ответ, если это правильно. Тогда я бы принял ваш ответ. – rmoestl

Смежные вопросы