【问题标题】:Is there any thing we have to change in the code when we shift the API levels?当我们改变 API 级别时,我们需要在代码中更改什么吗?
【发布时间】:2011-10-20 20:26:13
【问题描述】:

我已连接到 Web 服务并检索了 android 设备版本 2.2、API 8 中的值。但是当我将版本更改为 3.0 并将模拟器更改为 API 11 时。相同的代码显示错误。我已经更改了清单文件 sdk 版本和所有内容。

问题如下:

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
// androidHttpTransport.debug=true;
try{
    androidHttpTransport.call(SOAP_ACTION, envelope);
    // after this line it is going to the catch block
    SoapObject resultString=(SoapObject)envelope.bodyIn;

    // the result string is null when I used debugger and checked
    System.out.println("the result string displayed :" +resultString);
    String result=resultString.getProperty(0).toString();
} catch (Exception e) {
    e.getMessage();
}

Logcat错误如下:

WARN/System.err(886): android.os.NetworkOnMainThreadException
 WARN/System.err(886):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
 WARN/System.err(886):     at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:368)
 WARN/System.err(886):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:208)
 WARN/System.err(886):     at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:431)
 WARN/System.err(886):     at java.net.Socket.connect(Socket.java:901)
 WARN/System.err(886):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75)
WARN/System.err(886):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
WARN/System.err(886):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:304)
WARN/System.err(886):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
WARN/System.err(886):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:292)
WARN/System.err(886):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:274)
WARN/System.err(886):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:217)
WARN/System.err(886):     at org.ksoap2.transport.ServiceConnectionSE.connect(ServiceConnectionSE.java:75)
WARN/System.err(886):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:136)
WARN/System.err(886):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:90)
WARN/System.err(886):     at com.timetracker.app.Index.run(Index.java:214)
WARN/System.err(886):     at com.timetracker.app.Index$1.onClick(Index.java:77)
WARN/System.err(886):     at android.view.View.performClick(View.java:3100)
WARN/System.err(886):     at android.view.View$PerformClick.run(View.java:11644)
WARN/System.err(886):     at android.os.Handler.handleCallback(Handler.java:587)
WARN/System.err(886):     at android.os.Handler.dispatchMessage(Handler.java:92)
WARN/System.err(886):     at android.os.Looper.loop(Looper.java:126)
WARN/System.err(886):     at android.app.ActivityThread.main(ActivityThread.java:3997)
WARN/System.err(886):     at java.lang.reflect.Method.invokeNative(Native Method)
WARN/System.err(886):     at java.lang.reflect.Method.invoke(Method.java:491)
WARN/System.err(886):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
WARN/System.err(886):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
WARN/System.err(886):     at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 添加异常的LogCat输出...
  • “显示错误”? 哪个错误?错误消息只是令人害怕的事情。他们提供信息
  • @Joachim Sauer 这是一条警告消息,我已经编辑了帖子,并且我也放了 logcat 消息。
  • 如果你把这些东西或代码放在单独的线程中呢?
  • 看起来你和这篇帖子有同样的问题stackoverflow.com/questions/4821845/… 3.0 版中几乎有新的政策,如果代码可能需要一段时间才能执行,它会尝试指导你使用异步方法。

标签: java android


【解决方案1】:

试着用这种方式写你 onCreate,

public void onCreate() { 
  StrictMode.enableDefaults(); //this line add 
  super.onCreate(); 
  //put your Code
}

告诉我这是否可行。阅读博文请转至this link here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多