【问题标题】:how to solve the exception in android如何解决android中的异常
【发布时间】:2011-05-23 08:30:11
【问题描述】:

我已经在 android 中编写了 HttpDelete 来调用 REST Web 服务。

public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    TextView txt = (TextView) findViewById(R.id.textView1);
    txt.setText(getInputStreamFromUrl("http://192.168.37.241:8080/kyaw/k"));
    }

    public static String getInputStreamFromUrl(String url) {
          InputStream content = null;
          HttpResponse response = null;
          try {

            DefaultHttpClient httpclient = new DefaultHttpClient();             
            HttpDelete delete=new HttpDelete(url);
            put.setHeader("Content-Type","application/vnd.org.snia.cdmi.container");
            response = httpclient.execute(delete);
            content = response.getEntity().getContent();
          }catch (Exception e) {
            Log.e("[DELETE REQUEST]", "Network exception");
          }
            String result=response.getStatusLine().toString()+"\n"+response.getHeaders(url);
            return result;
        }

我得到了例外

05-23 08:30:16.868: ERROR/[DELETE REQUEST](1197): Network exception
05-23 08:30:16.868: DEBUG/AndroidRuntime(1197): Shutting down VM
05-23 08:30:16.878: WARN/dalvikvm(1197): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-23 08:30:16.908: ERROR/AndroidRuntime(1197): FATAL EXCEPTION: main
05-23 08:30:16.908: ERROR/AndroidRuntime(1197): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.putandroid}: java.lang.NullPointerException

有人知道为什么吗?

【问题讨论】:

  • 嗨 andreas_D,我得到了 NullPointerException 。这是日志文件 05-23 08:41:27.120: ERROR/AndroidRuntime(1344): FATAL EXCEPTION: main 05-23 08:41:27.120: ERROR/ AndroidRuntime(1344):java.lang.RuntimeException:无法启动活动ComponentInfo {com.test/com.test.putandroid}:java.lang.NullPointerException:错误/AndroidRuntime(1344):在android.app.ActivityThread.performLaunchActivity( ActivityThread.java:1647) : ERROR/AndroidRuntime(1344): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)

标签: java android web-services rest httprequest


【解决方案1】:

您是否检查了清单文件以获得 Internet 权限?

【讨论】:

  • 嗨 user755060,我忘记添加权限了。现在解决它。谢谢
【解决方案2】:

不知道网络异常(目前),但很可能是最后一个 NPE,因为在 response 已通过 httpclient.execute(delete) 初始化之前引发了上一个异常。

您应该重写您的 catch 块并将捕获的异常的名称和消息写入日志。

【讨论】:

  • 05-23 08:41:27.120: 错误/AndroidRuntime(1344): 在 java.lang.reflect.Method.invoke(Method.java:507) 05-23 08:41:27.120: ERROR/AndroidRuntime(1344): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 05-23 08:41:27.120: ERROR/AndroidRuntime(1344): at com.android.internal .os.ZygoteInit.main(ZygoteInit.java:597) 05-23 08:41:27.120: ERROR/AndroidRuntime(1344): at dalvik.system.NativeStart.main(Native Method) 05-23 08:41:27.120:错误/AndroidRuntime(1344):原因:java.lang.NullPointerException
【解决方案3】:

在第 4 行的 onCreate() 函数中,我们发现在初始化 TextView 之后,您正试图设置一个值。

您必须使用 Handler 对象,因为您无法在单独的线程中更新 UI 对象。

这里有一些链接可以帮助你

http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html

http://thedevelopersinfo.com/?p=150

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2017-09-14
    • 1970-01-01
    相关资源
    最近更新 更多