2012-04-24 153 views
0

我有幾個項目,我正式轉移到ICS和有一些奇怪的兼容性問題。這兩個項目在Androdid 2.2和2.3中運行良好。這兩個項目原本在清單如下:使用java.netAndroid ICS兼容性

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10" /> 

我連接到我的新的ICS設備後,並運行我有一些的Java API(包含在項目的jar文件)的錯誤。套接字java.io. *等等。當我從清單中刪除android:targetSdkVersion =「10」時,事情開始在ICS中重新開始工作。然而,有一些性能問題,下面顯示了在Eclipse DDMS logcat的頗有幾分:

threadid=3: reacting to signal 3 
Wrote stack traces to '/data/anr/traces.txt' 

這裏是traces.txt輸出:

----- pid 29070 at 2012-04-24 08:52:42 ----- 
Cmd line: com.COMPANY.MOBILEAPP 

DALVIK THREADS: 
(mutexes: tll=0 tsl=0 tscl=0 ghl=0) 
"main" prio=5 tid=1 NATIVE 
    | group="main" sCount=1 dsCount=0 obj=0x40a4f460 self=0x705830 
    | sysTid=29070 nice=0 sched=0/0 cgrp=default handle=1075090568 
    | schedstat=(0 0 0) utm=657 stm=52 core=0 
    at libcore.io.Posix.recvfromBytes(Native Method) 
    at libcore.io.Posix.recvfrom(Posix.java:131) 
    at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164) 
    at libcore.io.IoBridge.recvfrom(IoBridge.java:503) 
    at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488) 
    at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46) 
    at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240) 
    at java.io.InputStream.read(InputStream.java:163) 
    at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:142) 
    at java.io.BufferedInputStream.read(BufferedInputStream.java:227) 
    at com.COMPANY.tools.Response.receive(Response.java:592) 
    at com.COMPANY.tools.Response.getResponse(Response.java:100) 
    at com.COMPANY.tools.Response.<init>(Response.java:73) 
    at com.COMPANY.PRODUCT.JAVAAPI.submit(JAVAAPI.java:267) 
    at com.COMPANY.PRODUCT.JAVAAPI.Logon(JAVAAPI.java:602) 
    at com.COMPANY.MOBILEAPP.PRODUCTAdapter.Connect(PRODUCTAdapter.java:50) 
    at com.COMPANY.MOBILEAPP.Browse.onResume(Browse.java:105) 
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1154) 
    at android.app.Activity.performResume(Activity.java:4539) 
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2434) 
    at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:169) 
    at android.app.LocalActivityManager.dispatchResume(LocalActivityManager.java:523) 
    at android.app.ActivityGroup.onResume(ActivityGroup.java:61) 
    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1154) 
    at android.app.Activity.performResume(Activity.java:4539) 
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2434) 
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2472) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1173) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4424) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 
    at dalvik.system.NativeStart.main(Native Method) 

"Binder Thread #2" prio=5 tid=10 NATIVE 
    | group="main" sCount=1 dsCount=0 obj=0x41346498 self=0x8dd648 
    | sysTid=29082 nice=0 sched=0/0 cgrp=default handle=9335880 
    | schedstat=(0 0 0) utm=0 stm=0 core=0 
    at dalvik.system.NativeStart.run(Native Method) 

"Binder Thread #1" prio=5 tid=9 NATIVE 
    | group="main" sCount=1 dsCount=0 obj=0x413406b0 self=0x8e7a80 
    | sysTid=29081 nice=0 sched=0/0 cgrp=default handle=9062432 
    | schedstat=(0 0 0) utm=0 stm=0 core=0 
    at dalvik.system.NativeStart.run(Native Method) 

"FinalizerWatchdogDaemon" daemon prio=5 tid=8 TIMED_WAIT 
    | group="main" sCount=1 dsCount=0 obj=0x4133bd60 self=0x8d50a8 
    | sysTid=29080 nice=0 sched=0/0 cgrp=default handle=9302200 
    | schedstat=(0 0 0) utm=0 stm=0 core=0 
    at java.lang.VMThread.sleep(Native Method) 
    at java.lang.Thread.sleep(Thread.java:1031) 
    at java.lang.Thread.sleep(Thread.java:1013) 
    at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:213) 
    at java.lang.Thread.run(Thread.java:856) 

"FinalizerDaemon" daemon prio=5 tid=7 WAIT 
    | group="main" sCount=1 dsCount=0 obj=0x4133bc08 self=0x8de4e0 
    | sysTid=29079 nice=0 sched=0/0 cgrp=default handle=9329168 
    | schedstat=(0 0 0) utm=0 stm=0 core=0 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x40a455d0> (a java.lang.ref.ReferenceQueue) 
    at java.lang.Object.wait(Object.java:401) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73) 
    at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168) 
    at java.lang.Thread.run(Thread.java:856) 

"ReferenceQueueDaemon" daemon prio=5 tid=6 WAIT 
    | group="main" sCount=1 dsCount=0 obj=0x4133baa0 self=0x7983d8 
    | sysTid=29078 nice=0 sched=0/0 cgrp=default handle=9123568 
    | schedstat=(0 0 0) utm=0 stm=0 core=0 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x40a454f8> 
    at java.lang.Object.wait(Object.java:364) 
    at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:128) 
    at java.lang.Thread.run(Thread.java:856) 

"Compiler" daemon prio=5 tid=5 VMWAIT 
    | group="system" sCount=1 dsCount=0 obj=0x4133b9b0 self=0x8cc328 
    | sysTid=29077 nice=0 sched=0/0 cgrp=default handle=9055824 
    | schedstat=(0 0 0) utm=32 stm=15 core=0 
    at dalvik.system.NativeStart.run(Native Method) 

"JDWP" daemon prio=5 tid=4 VMWAIT 
    | group="system" sCount=1 dsCount=0 obj=0x4133b8c8 self=0x8d0a60 
    | sysTid=29076 nice=0 sched=0/0 cgrp=default handle=9122016 
    | schedstat=(0 0 0) utm=0 stm=0 core=0 
    at dalvik.system.NativeStart.run(Native Method) 

"Signal Catcher" daemon prio=5 tid=3 RUNNABLE 
    | group="system" sCount=0 dsCount=0 obj=0x4133b7d0 self=0x8ae310 
    | sysTid=29074 nice=0 sched=0/0 cgrp=default handle=9346264 
    | schedstat=(0 0 0) utm=48 stm=37 core=0 
    at dalvik.system.NativeStart.run(Native Method) 

"GC" daemon prio=5 tid=2 VMWAIT 
    | group="system" sCount=1 dsCount=0 obj=0x4133b6f0 self=0x890958 
    | sysTid=29072 nice=0 sched=0/0 cgrp=default handle=8971592 
    | schedstat=(0 0 0) utm=14 stm=0 core=0 
    at dalvik.system.NativeStart.run(Native Method) 

----- end 29070 ----- 

誰能幫我指出正確的方向嗎?

+0

你可能想提一提你做了什麼「搬家」到ICS 。您是否更改了您正在搭建的Android版本?更改目標版本可能會在運行時產生影響,但不會導致編譯錯誤。重新檢查你的項目設置。 – 2012-04-24 13:50:09

+3

查看android.os.NetworkOnMainThreadException您可能在允許蜂窩前的UI線程上執行網絡操作,但現在會引發異常。 – Kuffs 2012-04-24 13:59:52

+2

要獲取跟蹤文件,請使用'adb pull/data/anr/traces.txt'命令。 – Goldsmith 2012-04-24 14:03:04

回答

3

退房android.os.NetworkOnMainThreadException你可能這是允許的預蜂窩狀的UI線程上執行網絡操作,但是現在拋出一個異常

+0

我已經部分實現AsyncTask(http://developer.android.com/reference/android/os/AsyncTask.html)圍繞我的一些網絡相關的代碼並且它已經開始表現得很好了! :) – 2012-04-24 15:42:46

0

連接亞行logcat工具來看看會發生什麼......這也是Eclipse插件的一部分,如果它沒有在工作區中顯示出來,然後剛剛經歷窗口 - 啓用>顯示視圖>其他並找到根據Android的部分logcat的