2013-04-03 4 views
3

Я пытаюсь написать программу Java, которая использует некоторые функции в проекте Android. Мне не нужен Android-устройство или эмулятор, мне просто нужно использовать некоторые из функций проекта Android.Создание/издевательство Android-контекста из Java-приложения

Проблема Я бегу в это: Я пытаюсь запустить что-то вроде этого: С JAVA

AndroidProject testService = new AndroidProject(_context); 
testService.start(); 

Но «Контекст» является Android вещь, и я просто не могу понять, как создать один, или высмеять один, или получить один из моего класса Java.

Меня не интересует контекст, меня интересует только testService.start(), но конструктор no() для AndroidProject отсутствует, только конструктор AndroidProject(context).

Я попытался

Context _context; 
_context = null; 
AndroidProject testService = new AndroidProject(_context); 
testService.start(); 

Но я получаю ошибку Exception in thread "main" java.lang.RuntimeException: Stub!

Я также попытался

MainActivity myMainActivity = new MainActivity(); 
Context _context; 
_context = myMainActivity.getBaseContext(); // also tried getApplicationContext() 

Я начал смотреть в высмеивание, но не знаю, если я делаю это слишком сложно или нет ...

  • «Mockito» только дразнит интерфейсы, и я хочу, чтобы дразнить класс MainActivity,
  • «Android Mock» был слишком сложным, и я не мог получить свой проект по строительству с MainActivity myMockObject = AndroidMock.createMock(MainActivity.class);
  • «Robotium« похоже, что это приложение для Android, которое тестирует приложение для Android.

Я просто хочу, чтобы создать свой род Android фиктивного контекста и использовать его в моей Java-приложении, чтобы добраться до других функций этого класса Android ... это возможно?

ответ

2

android.jar содержит только заглушка реализация классов. Он предоставляет средства для создания вашего приложения, как только у вас есть APK, вы должны запустить его на устройстве или эмуляторе Android.

Даже если вы издеваетесь над компонентами, которые вам нужны (например, Context), вы доберетесь до заглушек. Если вы этого не сделаете, то код, который вы пытаетесь запустить, не зависит от Android, и вы можете, вероятно, включить его в внешний jar, который может использоваться совместно с проектами Java и Android.