Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java应用程序创建/模拟Android上下文_Java_Android_Mocking_Mockito_Android Context - Fatal编程技术网

从Java应用程序创建/模拟Android上下文

从Java应用程序创建/模拟Android上下文,java,android,mocking,mockito,android-context,Java,Android,Mocking,Mockito,Android Context,我正在尝试编写一个java程序,在Android项目中使用一些函数。 我不需要安卓设备或模拟器,我只需要使用安卓项目的一些功能 我遇到的问题是:我试图从JAVA运行类似的东西: AndroidProject testService = new AndroidProject(_context); testService.start(); 但是“上下文”是安卓的东西,我就是不知道如何创建一个,或者模拟一个,或者从我的Java类中获取一个 实际上,我对上下文并不感兴趣,我只对testService.

我正在尝试编写一个java程序,在Android项目中使用一些函数。 我不需要安卓设备或模拟器,我只需要使用安卓项目的一些功能

我遇到的问题是:我试图从JAVA运行类似的东西:

AndroidProject testService = new AndroidProject(_context);
testService.start();
但是“上下文”是安卓的东西,我就是不知道如何创建一个,或者模拟一个,或者从我的Java类中获取一个

实际上,我对上下文并不感兴趣,我只对
testService.start()
感兴趣,但AndroidProject没有()构造函数,只有
AndroidProject(上下文)
构造函数可用

我试过了

Context _context;
_context = null;
AndroidProject testService = new AndroidProject(_context);
testService.start();
但是我在线程“main”java.lang.RuntimeException:Stub中得到了一个
异常错误

我也试过了

MainActivity myMainActivity = new MainActivity();
Context _context;
_context = myMainActivity.getBaseContext(); // also tried getApplicationContext()
我开始研究嘲弄,但不知道我是否把它弄得太复杂了

  • Mockito”只模拟接口,我想模拟
    main活动
    class
  • Android Mock”太复杂了,我 无法使用
    main活动myMockObject生成我的项目=
    createMock(MainActivity.class)
  • Robotium”似乎是一款测试Android应用程序的Android应用程序

我只想创建某种Android虚拟上下文,并在java应用程序中使用它,以访问该Android类的其他函数…这可能吗?

Android.jar
只包含类的存根实现。它为你的应用程序提供了构建方法,一旦你有了APK,你就必须在android设备或模拟器上运行它

即使您模拟所需的组件(即
上下文
),您也会在某个地方找到存根。如果您不这样做,那么您尝试运行的代码就不依赖于android,您可以将其考虑到一个外部的
jar
,它可以在Java和android项目之间共享