版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nongminkouhao/article/details/84728484
Process: com.jh.fastec.example, PID: 3511
java.lang.ExceptionInInitializerError
at com.jh.latte.net.RestCreator$RetrofitHolder.access$100(RestCreator.java)
at com.jh.latte.net.RestCreator$RestServiceHolder.<clinit>(RestCreator.java:50)
at com.jh.latte.net.RestCreator$RestServiceHolder.access$200(RestCreator.java)
at com.jh.latte.net.RestCreator.getRestService(RestCreator.java:59)
at com.jh.latte.net.RestClient.request(RestClient.java:48)
at com.jh.latte.net.RestClient.get(RestClient.java:88)
at com.jh.fastec.example.ExampleDelegate.testMethod(ExampleDelegate.java:53)
at com.jh.fastec.example.ExampleDelegate.onBindView(ExampleDelegate.java:27)
at com.jh.latte.delegates.BaseDelegate.onCreateView(BaseDelegate.java:40)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2354)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3221)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3171)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:192)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:560)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
at android.app.Activity.performStart(Activity.java:6696)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2628)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.IllegalArgumentException: Illegal URL: www.baidu.com
at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:456)
at com.jh.latte.net.RestCreator$RetrofitHolder.<clinit>(RestCreator.java:40)
at com.jh.latte.net.RestCreator$RetrofitHolder.access$100(RestCreator.java)
at com.jh.latte.net.RestCreator$RestServiceHolder.<clinit>(RestCreator.java:50)
at com.jh.latte.net.RestCreator$RestServiceHolder.access$200(RestCreator.java)
at com.jh.latte.net.RestCreator.getRestService(RestCreator.java:59)
at com.jh.latte.net.RestClient.request(RestClient.java:48)
at com.jh.latte.net.RestClient.get(RestClient.java:88)
at com.jh.fastec.example.ExampleDelegate.testMethod(ExampleDelegate.java:53)
at com.jh.fastec.example.ExampleDelegate.onBindView(ExampleDelegate.java:27)
at com.jh.latte.delegates.BaseDelegate.onCreateView(BaseDelegate.java:40)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2354)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3221)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3171)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:192)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:560)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
at android.app.Activity.performStart(Activity.java:6696)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2628)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
封装retrofit网络工具类时,baseUrl(HttpUrl baseUrl) 方法传入了“www.baidu.com”导致的;通过看到的错误日志中的
Caused by: java.lang.IllegalArgumentException: Illegal URL: www.baidu.com
解决办法:
传入“http://www.baidu.com”就可以了
具体原因看retrofit的HttpUrl源码中的注释,如果是http或https格式的就返回一个新的httpurl,否则返回null
/**
* Returns a new {@code HttpUrl} representing {@code url} if it is a well-formed HTTP or HTTPS
* URL, or null if it isn't.
*/
public static @Nullable HttpUrl parse(String url) {
Builder builder = new Builder();
Builder.ParseResult result = builder.parse(null, url);
return result == Builder.ParseResult.SUCCESS ? builder.build() : null;
}
在此记录,希望对你有帮助