
我有一个使用两个活动的小应用程序.这两个活动都继承自MapActivity并显示地图(com.Google.android.maps).
自Android谷歌地图文档说
Only one MapActivity is supported per
process. Multiple MapActivitIEs
running simultaneously are likely to
interfere in unexpected and undesired
ways.
我修改了我的清单,在两个不同的进程中运行这两个活动(我删除了一些行以使其缩短):
<?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 }}当我调用getActivity()方法时抛出异常:
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)有没有办法让单元测试“解决”正确的过程?
解决方法:
Instrumentation在同一进程中运行所有应用程序组件.
总结以上是内存溢出为你收集整理的java – 在Android中运行单元测试时,Intent解析为不同的进程全部内容,希望文章能够帮你解决java – 在Android中运行单元测试时,Intent解析为不同的进程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)