求大神解决啊:Caused by: java.lang.NullPointerException: Attempt to invoke virtual meth

drug_addiction 2017-06-06 07:47:23
网上的那些错误解决办法都不适合我的代码 我吧代码截图放下面,用Android studio写的
错误日志:06-06 11:36:17.445 2638-2638/com.example.xm503xk E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.xm503xk, PID: 2638
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.xm503xk/com.example.xm503xk.activity.ArticleDetailActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.loadUrl(java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
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.NullPointerException: Attempt to invoke virtual method 'void android.webkit.WebView.loadUrl(java.lang.String)' on a null object reference
at com.example.xm503xk.activity.ArticleDetailActivity.onCreate(ArticleDetailActivity.java:116)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
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) 

代码如下:public class ArticleDetailActivity extends AppCompatActivity {
/*int resid;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_article_detail);
Intent intent=getIntent();
resid =intent.getIntExtra("resid",1);
String str= String.valueOf(resid);
Log.i("mymessage",str);
Toast.makeText(this,str,Toast.LENGTH_SHORT).show();

}*/
private int resid;
private int userid;
private Context context;
private WebView webView;
private Boolean flagcollect = false;//收藏标志
private Boolean flagfocus = false;//关注标志
private CollectModel collectmodel;//收藏model
private SharedPreferences sp;//简单存储
private String sessionID = ""; //sessionid
final static String PREF_NAME = "loginPref";
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);//加载菜单布局
collectmodel = new CollectModel();//实例化对象
collectmodel.exist("article", resid, sessionID, listener);//判断是否收藏
return true;
}
CollectListener listener = new CollectListener() {
@Override
public void onResponse(String msg) {
//获取菜单视图
ActionMenuItemView item = (ActionMenuItemView) findViewById(R.id.menucollect);
//根据mode中response返回的字符串区分返回结果
switch (msg) {
case "2":
System.out.println("----收藏成功");
flagcollect = true;
item.setTitle("取消收藏");
break;
case "1":
System.out.println("----收藏失败");
break;
case "5":
System.out.println("----取消收藏成功");
flagcollect = false;
item.setTitle("收藏");
break;
case "4":
System.out.println("----取消收藏失败");
break;
case "7":
System.out.println("----已收藏");
flagcollect = true;
item.setTitle("取消收藏");
break;
case "8":
System.out.println("----未收藏");
flagcollect = false;
item.setTitle("收藏");
break;
default:
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
}

@Override
public void onFail(String msg) {
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = ArticleDetailActivity.this;
setContentView(R.layout.activity_article_detail);
Intent intent = getIntent();
resid = intent.getIntExtra("resid", 1);
userid = intent.getIntExtra("userid", 1);
String str1 = String.valueOf(resid);
String str2 = String.valueOf(userid);
Log.i("mymessage", str1);
Log.i("mymessage", str2);
Toast.makeText(this, str1, Toast.LENGTH_SHORT).show();
sp = context.getSharedPreferences(PREF_NAME, MODE_PRIVATE);
readSP();//读取sessionid

webView = (WebView) findViewById(R.id.webview_article);
// webView.loadUrl(Constants.SERVERADDRESS + "article.php/show/index/id/" + resid);
webView.loadUrl(Constants.SERVERADDRESS + "article.php/show/index/id/" + resid);
}

private void readSP() {
sessionID = sp.getString("sessionId", null);
System.out.println(sessionID);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menucollect:
//Toast.makeText(this, "文章收藏", Toast.LENGTH_SHORT).show();
if (flagcollect)//如果已收藏,则调用取消收藏
{
System.out.println("----准备取消收藏");
collectmodel.uncollect("article", resid, sessionID, listener);
} else//如果未收藏,则调用收藏
{
System.out.println("----准备收藏");
collectmodel.collect("article", resid, sessionID, listener);
}
break;
case R.id.menufocus:
//Toast.makeText(this, "文章关注", Toast.LENGTH_SHORT).show();
if (flagfocus)//如果已关注,则调用取消关注
{
System.out.println("----准备关注");
} else//如果未关注,则调用关注
{
System.out.println("----准备取消关注");
}
break;
}
return super.onOptionsItemSelected(item);

}
}
错误的哪行代码是(把前一行也粘过来了方便大神们看):
webView = (WebView) findViewById(R.id.webview_article);
webView.loadUrl(Constants.SERVERADDRESS + "article.php/show/index/id/" + resid);
...全文
4117 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DevJasper 2017-06-11
  • 打赏
  • 举报
回复
空指针问题,打断点逐步调试一下,通常可以找到问题
azj流水 2017-06-09
  • 打赏
  • 举报
回复
Caused by: java.lang.NullPointerException!!!空指针最好找了,最简单的方法不停打日志
李熙尘 2017-06-07
  • 打赏
  • 举报
回复
webView = (WebView) findViewById(R.id.webview_article); 显然是这行代码出错,好好检查下xml文件,webView应该为null
ganshenml 2017-06-07
  • 打赏
  • 举报
回复
排版太乱了。 很明显报空指针异常。你打个断点查对象有没有实例化。
ganshenml 2017-06-07
  • 打赏
  • 举报
回复
为什么有两个oncreate方法?
drug_addiction 2017-06-07
  • 打赏
  • 举报
回复
引用 3 楼 tanyanghzsd 的回复:
webView = (WebView) findViewById(R.id.webview_article); 显然是这行代码出错,好好检查下xml文件,webView应该为null
谢谢就是这个问题 找到了 缺少XML里的额weview

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧