Android连接SQLServer详细教程 空指针解决方案

来源:互联网 发布:qq邮箱营销软件 编辑:程序博客网 时间:2024/06/03 22:48

Android连接SQLServer详细教程(数据库+服务器+客户端)

原文地址:  http://blog.csdn.net/zhyl8157121/article/details/8169172

部分童鞋运行时会报如下错误:

05-15 06:06:33.790: W/dalvikvm(1772): threadid=1: thread exiting with uncaught exception (group=0xb4f56288)
05-15 06:06:33.855: E/AndroidRuntime(1772): FATAL EXCEPTION: main
05-15 06:06:33.855: E/AndroidRuntime(1772): java.lang.NullPointerException

大家都关注在空指针问题上,拼命的去查找有可能产生空值的地方,实际通过调试发现程序只要运行至

HttpConnSoap.java

OutputStream outStream = con.getOutputStream();

就会跳出程序,下面就不运行了。(说到这里对eclisp报怨一下,调试老是报class not found,已转战android studio)

android studio感觉比eclisp强多了,如果大家安装时碰到

Failed to import Gradle project的问题可以参见以下地址

http://blog.csdn.net/caopeng51/article/details/10948171 今天刚解决的,呵呵。

看了一下catlog(android studio的)提示 NetworkOnMainThreadException(原贴地址http://blog.csdn.net/qinpengtaiyuan/article/details/8038074)原因android4.0以上不允许直接从主程序调用线程(大概是这意思吧?)

在MainActivity.java中加入以下蓝字部分

  1. public void onCreate(Bundle savedInstanceState) {  
  2.         super.onCreate(savedInstanceState);  
  3.         setContentView(R.layout.activity_main); 
    1. StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()  
    2.             .detectDiskReads().detectDiskWrites().detectNetwork()  
    3.             .penaltyLog().build());  
    4.   
    5. StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()  
    6.             .detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath()  
    7.             .build()); 
     
  4.   
  5.         btn1 = (Button) findViewById(R.id.btn_all);  
  6.         btn2 = (Button) findViewById(R.id.btn_add);  
  7.         btn3 = (Button) findViewById(R.id.btn_delete);  
  8.         listView = (ListView) findViewById(R.id.listView);  
  9.         dbUtil = new DBUtil();  

如果报错,androidmanifest.xml中最低版本号改为9即可。

 <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="16" />