NoHttp报错之Please invoke NoHttp.initialize(Application) on Application#onCreate()
来源:互联网 发布:网络几分钟断一次 编辑:程序博客网 时间:2024/06/05 05:51
先来看看报错内容吧
07-29 14:03:18.860 2557-2557/wlj.com.nohttp E/AndroidRuntime: FATAL EXCEPTION: main Process: wlj.com.nohttp, PID: 2557 java.lang.ExceptionInInitializerError: Please invoke NoHttp.initialize(Application) on Application#onCreate() at com.yolanda.nohttp.NoHttp.getContext(NoHttp.java:548) at com.yolanda.nohttp.cache.CacheDisk.<init>(CacheDisk.java:47) at com.yolanda.nohttp.cache.CacheDiskManager.<init>(CacheDiskManager.java:39) at com.yolanda.nohttp.cache.CacheDiskManager.getInstance(CacheDiskManager.java:44) at com.yolanda.nohttp.cache.DiskCacheStore.<init>(DiskCacheStore.java:47) at com.yolanda.nohttp.cache.DiskCacheStore.<clinit>(DiskCacheStore.java:34) at com.yolanda.nohttp.NoHttp.newRequestQueue(NoHttp.java:179) at com.yolanda.nohttp.NoHttp.newRequestQueue(NoHttp.java:165) at wlj.com.nohttp.App.initOnHttp(App.java:25) at wlj.com.nohttp.MainActivity.onCreate(MainActivity.java:34) at android.app.Activity.performCreate(Activity.java:6374) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2743) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2855) at android.app.ActivityThread.access$900(ActivityThread.java:181) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:6117) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
我从网上把jar包下载下来,本来只是写了一个很简单的网络请求,结果就爆出来这样的错误,提示说是:Please invoke NoHttp.initialize(Application) on Application#onCreate(),那么这句话意思是说让我们在application要进行初始化,没办法我们就要在application中进行初始化了,看作者给的demo中有这样一行代码
NoHttp.init(this);
那么这行代码就是在application中,不过现在这个放法过时了,换成了是
NoHttp.initialize(this);
好了,看看我写的代码,很简单的一个网络请求
application中的代码:
package wlj.com.nohttp;import android.app.Application;import com.yolanda.nohttp.NoHttp;import com.yolanda.nohttp.rest.RequestQueue;/** * @author wlj * @date 2016/7/29 * @packagename wlj.com.nohttp */public class App extends Application { private static RequestQueue requestQueue; @Override public void onCreate() { super.onCreate(); NoHttp.initialize(this); } //静态的,直接点调用 public static RequestQueue initOnHttp() { requestQueue = NoHttp.newRequestQueue(); return requestQueue; }}
mainActivity中的代码:
package wlj.com.nohttp;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import com.yolanda.nohttp.NoHttp;import com.yolanda.nohttp.RequestMethod;import com.yolanda.nohttp.rest.OnResponseListener;import com.yolanda.nohttp.rest.Request;import com.yolanda.nohttp.rest.RequestQueue;import com.yolanda.nohttp.rest.Response;public class MainActivity extends Activity implements View.OnClickListener { //用来分是哪次请求 private static final int NOHTTP_WHAT_TEST = 0x001; private Button btn1; private TextView tv1; //一个天气预报的开发接口 private String url = "http://mobile.weather.com.cn/data/news/khdjson.htm?_=1381891660018"; private Request<String> stringRequest; private RequestQueue requestQueue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.btn1); tv1 = (TextView) findViewById(R.id.tv); btn1.setOnClickListener(this); requestQueue = App.initOnHttp(); } @Override public void onClick(View v) { stringRequest = NoHttp.createStringRequest(url, RequestMethod.GET); switch (v.getId()) { //当点击按钮是触发的事件 case R.id.btn1: requestQueue.add(NOHTTP_WHAT_TEST, stringRequest, new OnResponseListener<String>() { @Override public void onStart(int i) { } @Override public void onSucceed(int i, Response<String> response) { String s = response.get(); tv1.setText(s); } @Override public void onFailed(int i, String s, Object o, Exception e, int i1, long l) { } @Override public void onFinish(int i) { } }); break; } }}
布局文件也是很简单:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="wlj.com.nohttp.MainActivity"> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请求网络1" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /></LinearLayout>
最后来看运行效果吧
ps 如果觉得对你有用,就点赞吧
2 0
- NoHttp报错之Please invoke NoHttp.initialize(Application) on Application#onCreate()
- NoHttp
- NoHttp
- NoHttp
- android之联网Nohttp
- NoHttp详解之NoHttp最基本使用(无封装)
- NoHttp详解之NoHttp最原生使用(无封装)
- NoHttp详解之NoHttp最基本使用(无封装)
- NoHttp介绍
- NoHttp实践
- NoHttp框架
- LoadRunner报这个错:invalid application path!please check if application exists
- java.lang.NoClassDefFoundError: com.yolanda.nohttp.NoHttp
- javafx报错not on fx application thread
- Android NoHttp基础详解
- Android如何使用NoHttp
- NoHttp,volley,okhttp介绍
- Android-NoHttp问答记录
- CentOS+Nginx一步一步开始配置负载均衡
- iOS加载控制器的三种方式
- Kali Linux渗透基础知识整理(一):信息搜集 20160726
- CNN进展与技巧(下)
- 阿里数据库迁移项目yugong
- NoHttp报错之Please invoke NoHttp.initialize(Application) on Application#onCreate()
- 题目244 16进制的简单运算
- Pyspider的安装使用
- Hibernate和Spring整合的时候,事务应该放在Service还是Dao
- Storm的一个坑,找不对jar包,别把jar包放在根目录
- 【步兵 lua】利用脚本的优势
- 如何在Eclipse下查看JDK源代码
- maven mybatis 自动生成
- Oracle WDP的前世今生