【发布时间】:2014-05-22 14:56:37
【问题描述】:
我正在使用 UrbanAirship 接收推送,我可以成功接收通知。我决定使用 robolectric 将测试添加到我的项目中,并创建了一个简单的测试,如下所示。
@Config(emulateSdk = 18)
@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {
@Test
public void test1(){
assertTrue(true);
}
}
得到
test1 失败 java.lang.RuntimeException
引起:java.lang.IllegalStateException
当我使用 debug 运行测试时,我注意到一个奇怪的错误。
java.lang.IllegalStateException:无法解析 UrbanAirshipProvider。请检查您的 AndroidManifest.xml 中是否定义了提供程序,并且权限字符串是否设置为“YOUR_PACKAGENAME.urbanairship.provider”
我检查了我的清单,但似乎没有任何问题。
<provider android:name="com.urbanairship.UrbanAirshipProvider"
android:authorities="com.test.myapp.app.urbanairship.provider"
android:permission="com.test.myapp.app.permission.UA_DATA"
android:exported="true"
android:multiprocess="true" />
如果我注释掉与 urbanairship 相关的行,我可以毫无错误地运行我的测试。 我正在使用 AndroidStudio,urbanairship jar 的版本是 4.0.2。 有没有什么办法解决这一问题 ?
【问题讨论】:
-
您好,您解决了这个问题吗?我很难让这两者一起工作:(
标签: android android-studio robolectric urbanairship.com