我能够找到如何将android.net.Uri转换为Java.net.URI ,但反之亦然.
所以花了一些时间后我才明白了.这是解决方案(如果有另一种解决方案,那么请发布它)
首先将javaURI转换为字符串然后使用android.net.Uri的解析函数
android.net.URI androidUri = android.net.Uri.parse(javaURI.toString());
我有这种制作方法:
public boolean onShouldOverrideUrlLoading(String url) {
    boolean isConsumed = false;
    if (url.contains("code=")) {
         Uri uri = Uri.parse(url);
         String authCode = uri.getQueryParameter("code");
         mView.authCodeObtained(authCode);
         isConsumed = true;
    }
    return isConsumed;
}
我有这个Mockito测试方法:
@Test
public void onShouldOverrideUrlLoadingOnAuthCodeObtained(){
    String code = "someCode";
    boolean isConsumed = mPresenter.onShouldOverrideUrlLoading("http://localhost/?code=" + code);
    verify(mView, times(1)).authCodeObtained(code);
    assertEquals(isConsumed, true);
}
但似乎一旦代码运行并且它到达Uri.parse(url),我得到一个空指针.我错过了什么?在生产中,这非常有效.只有在测试时,Uri.parse()才会返回null.
谢谢!