为什么 想数据库添加信息的时候添加不进去????空指针。。。但是我在上面打印都可以打印出来。。。。

黛曦葛溪 发布于 2012/07/05 16:31
阅读 474
收藏 0
//  执行到  ms.addOnline_All(movie); 的时候报空指针。。。但是在它之上的 全都可以打印出来。。。



protected List<Map<String, Object>> doInBackground(
			List<Map<String, Object>>... params) {
		System.out.println("进入  遍历集合。。。。。。。。。。。");
		List<Map<String,Object>> typenum = params[0];
		System.out.println("有值没有========"+typenum.size());
		
		for (Iterator<Map<String, Object>> typeiterator = typenum.iterator(); typeiterator.hasNext();) {
		
			System.out.println("进入  遍历====集合。。。。。。。。。。。");
			Map<String, Object> num = typeiterator.next();
			
			Integer numint = (Integer) num.get("num");
			String name = (String) num.get("name");
			String type = (String) num.get("type");
			String region = (String) num.get("region");
			String actor = (String) num.get("actor");
			String year = (String) num.get("year");
			String link = (String) num.get("link");
			String television = (String) num.get("television");
			
			System.out.println(" 遍历集合。。。。。完毕。。。开始向数据库中添加。。。");

			
			System.out.println("得到的television -------"+television+"------");
			System.out.println("得到的name -------"+name+"------");
			System.out.println("得到的type -------"+type+"------");
			System.out.println("得到的region -------"+region+"------");
			System.out.println("得到的year -------"+year+"------");
			System.out.println("得到的actor -------"+actor+"------");
			System.out.println("得到的num -------"+numint+"------");
			System.out.println("得到的link -------"+link+"------");
			 
			/*Movie movie = new Movie();
			movie.setName(name);
			movie.setActor(actor);
			movie.setLink(link);
			movie.setNum(numint);
			movie.setRegion(region);
			movie.setTelevision(television);
			movie.setType(type);
			movie.setYear(year);*/
			
			//ms.addOnline_All(movie);
		}
		Movie movie = new Movie();
		movie.setName(name);
		movie.setActor(actor);
		movie.setLink(link);
		movie.setNum(numint);
		movie.setRegion(region);
		movie.setTelevision(television);
		movie.setType(type);
		movie.setYear(year);

		ms.addOnline_All(movie);

		System.out.println("添加数据完毕。。。。。。。。。。。");
		return null;
	}

加载中
0
情天大圣
情天大圣
妹纸,是ms空指针,不是movie
黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : 贴上去啦。。。用贴把解析 xml 得到信息的吗?那边就是吧 信息 给封装到集合里面了 这边是得到集合 遍历的。。。
情天大圣
情天大圣
回复 @朱洋洋 : 妹纸,贴代码!
黛曦葛溪
黛曦葛溪
回复 @星星点天灯 :MovieService ms;就这样定义的 相当于给MovieService 实例化了一下
情天大圣
情天大圣
回复 @朱洋洋 : ms哪来的?
黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : O(∩_∩)O~ 然后呢?怎么解决啊???
下一页
0
如风随影
如风随影
ms 这个引用对象为空 ,你自己怎么处理的这个引用!
黛曦葛溪
黛曦葛溪
什么叫 处理的引用?你是说怎么 定义的 ms 吗?如果是的话就是 MovieService ms; 这样定义的。。。
0
如风随影
如风随影

引用来自“fens111”的答案

ms 这个引用对象为空 ,你自己怎么处理的这个引用!
MovieService ms 这是接口塞,这个接口的实例是怎么样的
黛曦葛溪
黛曦葛溪
我都搞不懂了。。你别说得太专业,说得俗一点吧。。不然我搞不懂了都。我没写 什么接口 我在 MoviceService 里面直接写的 SQL语句的。。。
0
如风随影
如风随影
你用的spring吧,怀疑你接口没有注入实例导致空指针异常的!
黛曦葛溪
黛曦葛溪
回复 @fens111 : 这是数据库。。。。
如风随影
如风随影
回复 @朱洋洋 : 老大 ,安卓的我真不会,要我说不是乱说么!你问下会安卓的人啦
黛曦葛溪
黛曦葛溪
回复 @fens111 : 不行!!!这点是数据库 跟android 里面没关系了几乎上。。。你就帮忙怎么把信息添加进去就行了。。。好吧?拜托了。。。
如风随影
如风随影
@朱洋洋 android 不会 - - 闪
黛曦葛溪
黛曦葛溪
没有用Spring 啊。。。我写的 android O(∩_∩)O哈!不过添加数据库都用的一样方法 我用 test测试 都可以添加进去 这样就添加不进去。。。
0
黛曦葛溪
黛曦葛溪
/**
 * 遍历 机洗出来的集合
 * @author  Administrator
 *
 */
public class TraverseSet extends AsyncTask<List<Map<String, Object>>, List<Map<String, Object>>, List<Map<String, Object>>>{
	private  String television;
	private  String name;
	private  String type;
	private  String region;
	private  String year;
	private  String actor;
	private  int numint;
	private  String link;
	//MovieService ms;
	Context context;
	protected List<Map<String, Object>> doInBackground(
			List<Map<String, Object>>... params) {
		System.out.println("进入  遍历集合。。。。。。。。。。。");
		List<Map<String,Object>> typenum = params[0];
		System.out.println("有值没有========"+typenum.size());

		for (Iterator<Map<String, Object>> typeiterator = typenum.iterator(); typeiterator.hasNext();) {

			System.out.println("进入  遍历====集合。。。。。。。。。。。");
			Map<String, Object> num = typeiterator.next();

			numint = (Integer) num.get("num");
			name = (String) num.get("name");
			type = (String) num.get("type");
			region = (String) num.get("region");
			actor = (String) num.get("actor");
			year = (String) num.get("year");
			link = (String) num.get("link");
			television = (String) num.get("television");

			System.out.println(" 遍历集合。。。。。完毕。。。开始向数据库中添加。。。");


			System.out.println("得到的television -------"+television+"------");
			System.out.println("得到的name -------"+name+"------");
			System.out.println("得到的type -------"+type+"------");
			System.out.println("得到的region -------"+region+"------");
			System.out.println("得到的year -------"+year+"------");
			System.out.println("得到的actor -------"+actor+"------");
			System.out.println("得到的num -------"+numint+"------");
			System.out.println("得到的link -------"+link+"------");

			/*Movie movie = new Movie();
			movie.setName(name);
			movie.setActor(actor);
			movie.setLink(link);
			movie.setNum(numint);
			movie.setRegion(region);
			movie.setTelevision(television);
			movie.setType(type);
			movie.setYear(year);
			System.out.println("添加数据完毕。。。。。。。。。。。");
			ms.addOnline_All(movie);*/
		}
		MovieService ms = new MovieService(this.context); 
		Movie movie = new Movie();
		movie.setName(name);
		movie.setActor(actor);
		movie.setLink(link);
		movie.setNum(numint);
		movie.setRegion(region);
		movie.setTelevision(television);
		movie.setType(type);
		movie.setYear(year);
		ms.addOnline_All(movie);
		System.out.println("添加数据完毕。。。。。。。。。。。");
		return null;
	}
}

黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : 贴上去了。。。不过我刚才在test 测试 还测试成功了啊。。。应该不是 添加语句有问题吧?
黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : 贴上去了。。。不过我刚才在test 测试 还测试成功了啊。。。应该不是 添加语句有问题吧?
情天大圣
情天大圣
回复 @朱洋洋 : 照这样看,ms不是空指针,而是addOnline_All这个方法内有空指针,贴这个代码,还有异常提示信息
黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : 你说没错是看到我打印出来一句 :添加数据库完毕吧。。。因为你让我在上面输出一个打印 所以我就把下面的复制上去了。。。因为不是只看 ms 是什么吗???就下面这样的:System.out.println("添加数据完毕。。。。。"+ms); ms.addOnline_All(movie); System.out.println("添加数据完毕。。。。。");
情天大圣
情天大圣
回复 @朱洋洋 : 你先把问题描述清楚再说,我被你说晕了!
下一页
0
黛曦葛溪
黛曦葛溪
public void addOnline_All(Movie movie){
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		db.execSQL("insert into Online_All (television,name,type,region,year,actor,num,link)values(?,?,?,?,?,?,?,?)", 
				new Object[]{movie.getTelevision(),movie.getName(),movie.getType(),movie.getRegion(),movie.getYear(),
				movie.getActor(),movie.getNum(),movie.getLink()});
	}

0
如风随影
如风随影
妹陀,你这个还没搞出来啊
黛曦葛溪
黛曦葛溪
数据库不好。。。。我也好难受。。。
0
如风随影
如风随影

引用来自“fens111”的答案

妹陀,你这个还没搞出来啊
你们的这些东西都不全,发来也不一定能找到的,自己多留心请教下边上会的人吧!
黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : 可是你没告诉我让我贴异常 信息啊。。。报异常说错的那几句 也就是 我说的 ms.addOnline_All();错的,还有就是 我贴上去的 MovieService 里面的 SQLiteDatabase db = dbHelper.getWritableDatabase();
如风随影
如风随影
额,其实也没有什么,自己找找异常对解决问题的能力有提高的!!
情天大圣
情天大圣
空指针是最好解决的问题,被她搞这么复杂,让贴异常信息,一贴就是代码,我更难受!
0
黛曦葛溪
黛曦葛溪

引用来自“星星点天灯”的答案

妹纸,是ms空指针,不是movie
07-06 02:38:37.114: E/AndroidRuntime(13999): Caused by: java.lang.NullPointerException
07-06 02:38:37.114: E/AndroidRuntime(13999): 	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)
07-06 02:38:37.114: E/AndroidRuntime(13999): 	at com.android.testpalyer.sql.MovieService.addOnline_All(MovieService.java:28)
07-06 02:38:37.114: E/AndroidRuntime(13999): 	at com.download.fromhttp.TraverseSet.doInBackground(TraverseSet.java:71)
07-06 02:38:37.114: E/AndroidRuntime(13999): 	at com.download.fromhttp.TraverseSet.doInBackground(TraverseSet.java:1)
07-06 02:38:37.114: E/AndroidRuntime(13999): 	at android.os.AsyncTask$2.call(AsyncTask.java:264)
07-06 02:38:37.114: E/AndroidRuntime(13999): 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)

黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : 没有,现在怎样得到 Context 关键是 ,在Activity里面可以写: MovieService ms = new MovieService(MovieActivity.this.getApplicationContext()); 但是在 这里面怎么 得到 context 啊?之前我写的 this.context 是自定义的 所以肯定是传不过去的。。。
情天大圣
情天大圣
回复 @朱洋洋 :你的TraverseSet.java这个类的方法doInBackground()到底有没有这行代码MovieService ms = new MovieService(this.context);
黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : dbHelper 是这样定义的 是不是说 context 就是空? private DatabaseHelper dbHelper; public MovieService(Context context) { this.dbHelper = new DatabaseHelper(context); }
情天大圣
情天大圣
回复 @朱洋洋 : dbHelper是null
黛曦葛溪
黛曦葛溪
回复 @星星点天灯 : SQLiteDatabase db = dbHelper.getWritableDatabase(); 是这一句。。。
下一页
返回顶部
顶部