我正在使用UrbanAirship接收推送,我能成功地接收到通知。我决定使用Robolectric为我的项目添加测试,并创建了一个简单的测试,如下所示。
@Config(emulateSdk = 18)
@RunWith(RobolectricTestRunner.class)
public class MyActivityTest {
@Test
public void test1(){
assertTrue(true);
}
}
并获得
测试1失败 java.lang.RuntimeException
Caused by: java.lang.IllegalStateException
当我使用调试运行我的测试时,我注意到了一个奇怪的错误。
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。有没有什么办法可以解决这个问题?