我正在尝试编写一个在Android项目中使用某些函数的java程序。 我不需要Android设备或模拟器,我只需要使用Android项目的一些功能。
我遇到的问题是:我正试图运行这样的东西来自JAVA:
AndroidProject testService = new AndroidProject(_context);
testService.start();
但是“Context”是一个Android的东西,我无法弄清楚如何创建一个,或模拟一个,或从我的Java类中获取一个。
我实际上对上下文不感兴趣,我真的只对testService.start()
感兴趣,但是对于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()
我开始研究Mocking,但不知道我是不是太复杂了......
MainActivity
类,MainActivity myMockObject =
AndroidMock.createMock(MainActivity.class);
我只是想创建某种Android虚拟上下文并在我的java应用程序中使用它来获取该Android类的其他功能...... 这可能吗?
答案 0 :(得分:2)
android.jar
仅包含类的存根实现。它为你的应用程序提供了构建的方法,一旦你拥有你的APK,你必须在Android设备或模拟器上运行它。
即使您模拟了所需的组件(即Context
),您也会在某处找到存根。如果不这样做,那么您尝试运行的代码不依赖于Android,您可以将其分解为可在Java和Android项目之间共享的外部jar
。