Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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_Multithreading_Unit Testing_Junit - Fatal编程技术网

Java 在Android中运行单元测试时,意图解析为不同的进程

Java 在Android中运行单元测试时,意图解析为不同的进程,java,android,multithreading,unit-testing,junit,Java,Android,Multithreading,Unit Testing,Junit,我有一个使用两个活动的小应用程序。这两个活动都继承自MapActivity并显示地图(com.google.android.maps) 自从Android谷歌地图文档说 每个站点只支持一个MapActivity 过程多重映射活动 同时运行可能会 干涉意外和不希望发生的事情 方式 我修改了清单以在两个不同的进程中运行这两个活动(我删除了一些行以使其简短): 有没有办法让单元测试“解析”正确的进程?检测在同一进程中运行所有应用程序组件 谢谢,图表很清楚。所以,请帮助我理解:发生的情况是,插装在同一个

我有一个使用两个活动的小应用程序。这两个活动都继承自MapActivity并显示地图(com.google.android.maps)

自从Android谷歌地图文档说

每个站点只支持一个MapActivity 过程多重映射活动 同时运行可能会 干涉意外和不希望发生的事情 方式

我修改了清单以在两个不同的进程中运行这两个活动(我删除了一些行以使其简短):


有没有办法让单元测试“解析”正确的进程?

检测在同一进程中运行所有应用程序组件


谢谢,图表很清楚。所以,请帮助我理解:发生的情况是,插装在同一个进程中运行所有内容,然后一些代码试图跳转到进程
。Activity1
?如果是,是否有办法保持多重处理,并在运行单元测试时要求检测忽略此设置?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Light">

    <uses-library android:name="com.google.android.maps" />

    <activity 
        android:name=".Activity1"
        android:process=".Activity1">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>Unit
    </activity>

    <activity
        android:name=".Activity2"
        android:process=".Activity2">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

</application>

<uses-sdk android:minSdkVersion="8" />
</manifest> 
package com.example.myapp;
public class Activity1Test extends ActivityInstrumentationTestCase2<Activity1> {

    Activity1 mActivity;

    public Activity1Test() {
        super("com.example.myapp.Activity1", Activity1.class);
    }

    @Override 
    protected void setUp() throws Exception {
        super.setUp();
        setActivityInitialTouchMode(false);
        setActivityIntent(new Intent());
        mActivity = getActivity();  //An exception is thrown at this line
    }
}
java.lang.RuntimeException: Intent in process com.example.myapp resolved to different process .Activity1: Intent { flg=0x10000000 cmp=com.example.myapp/.Activity1 }
at android.app.Instrumentation.startActivitySync(Instrumentation.java:377)
at android.test.InstrumentationTestCase.launchActivityWithIntent(InstrumentationTestCase.java:119)
at android.test.ActivityInstrumentationTestCase2.getActivity(ActivityInstrumentationTestCase2.java:100)
at com.example.myapp.Activity1Test.setUp(Activity1Test.java:28)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)