2012-08-06 43 views
0

經過測試,它在非Android程序上工作,但在Android上初始化後立即崩潰。日誌貓也不會產生任何錯誤消息。我從​​找到了這個。CircularFifoBuffer在Android應用上初始化後崩潰

任何明顯的問題?

編輯:如果我將jar文件添加到libs文件夾(而不是外部),然後將其添加到構建路徑中,我會得到此錯誤消息。如果我在外部添加jar文件,這個錯誤不存在。

[2012-08-05 20:56:03 - wifiCollection] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class (org.apache.commons.collections.SequencedHashMap$1) that doesn't come with an associated EnclosingMethod attribute. This class was probably produced by a compiler that did not target the modern .class file format. The recommended solution is to recompile the class from source, using an up-to-date compiler and without specifying any "-target" type options. The consequence of ignoring this warning is that reflective operations on this class will incorrectly indicate that it is not an inner class.

EDIT2

08-05 21:12:48.837: I//system/bin/batteryd(1189): 1566474 v_bat 3.678 (3.677), i_supply 0.500, i_demand 0.282 => v_bat_idle 3.649 (3.649), level 41% (41%, 41%), state 5

08-05 21:12:50.837: I//system/bin/batteryd(1189): 1568477 v_bat 3.678 (3.677), i_supply 0.500, i_demand 0.282 => v_bat_idle 3.649 (3.649), level 41% (41%, 41%), state 5

08-05 21:12:51.267: I/ActivityManager(1291): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.jimmyc.summer.wificollection/.WiFiLocationApp bnds=[245,418][355,553] }

08-05 21:12:51.337: I/dalvikvm(1374): Jit: resizing JitTable from 4096 to 8192

08-05 21:12:51.353: I/ActivityManager(1291): Start proc com.jimmyc.summer.wificollection for activity com.jimmyc.summer.wificollection/.WiFiLocationApp: pid=1782 uid=10045 gids={1015}

08-05 21:12:51.634: D/dalvikvm(1782): GC_FOR_MALLOC freed 1571 objects/198264 bytes in 56ms

08-05 21:12:51.751: V/LocationManagerService(1291): _removeUpdates: listener = Receiver{45a6e008 Listener [email protected]}

08-05 21:12:51.774: V/Tagging(1782): Application starting

08-05 21:12:51.774: V/Tagging(1782): Checking for wifi

08-05 21:12:51.774: V/Tagging(1782): Creating new wifiMode

08-05 21:12:51.782: E/dalvikvm(1782): Could not find class 'org.apache.commons.collections.buffer.CircularFifoBuffer', referenced from method com.jimmyc.summer.wificollection.WiFiLocationApp$wifiMode.

08-05 21:12:51.782: W/dalvikvm(1782): VFY: unable to resolve new-instance 575 (Lorg/apache/commons/collections/buffer/CircularFifoBuffer;) in Lcom/jimmyc/summer/wificollection/WiFiLocationApp$wifiMode;

08-05 21:12:51.782: D/dalvikvm(1782): VFY: replacing opcode 0x22 at 0x0032

08-05 21:12:51.782: D/dalvikvm(1782): VFY: dead code 0x0034-0041 in Lcom/jimmyc/summer/wificollection/WiFiLocationApp$wifiMode;. (Lcom/jimmyc/summer/wificollection/WiFiLocationApp;)V

08-05 21:12:51.790: I/dalvikvm(1782): Could not find method org.apache.commons.collections.buffer.CircularFifoBuffer.isFull, referenced from method com.jimmyc.summer.wificollection.WiFiLocationApp$wifiMode.detectStableEnvironment

08-05 21:12:51.790: W/dalvikvm(1782): VFY: unable to resolve virtual method 3504: Lorg/apache/commons/collections/buffer/CircularFifoBuffer;.isFull()Z

08-05 21:12:51.790: D/dalvikvm(1782): VFY: replacing opcode 0x74 at 0x0006

08-05 21:12:51.790: D/dalvikvm(1782): VFY: dead code 0x0009-0230 in Lcom/jimmyc/summer/wificollection/WiFiLocationApp$wifiMode;.detectStableEnvironment()Z

08-05 21:12:51.790: I/dalvikvm(1782): Could not find method org.apache.commons.collections.buffer.CircularFifoBuffer.size, referenced from method com.jimmyc.summer.wificollection.WiFiLocationApp$wifiMode.match

08-05 21:12:51.790: W/dalvikvm(1782): VFY: unable to resolve virtual method 3506: Lorg/apache/commons/collections/buffer/CircularFifoBuffer;.size()I

08-05 21:12:51.790: D/dalvikvm(1782): VFY: replacing opcode 0x74 at 0x000f

08-05 21:12:51.790: D/dalvikvm(1782): VFY: dead code 0x0012-0227 in Lcom/jimmyc/summer/wificollection/WiFiLocationApp$wifiMode;.match()Z

08-05 21:12:51.790: I/dalvikvm(1782): Could not find method org.apache.commons.collections.buffer.CircularFifoBuffer.add, referenced from method com.jimmyc.summer.wificollection.WiFiLocationApp$wifiMode.processResults

08-05 21:12:51.790: W/dalvikvm(1782): VFY: unable to resolve virtual method 3502: Lorg/apache/commons/collections/buffer/CircularFifoBuffer;.add (Ljava/lang/Object;)Z

08-05 21:12:51.790: D/dalvikvm(1782): VFY: replacing opcode 0x6e at 0x0020

08-05 21:12:51.790: D/dalvikvm(1782): VFY: dead code 0x0023-0050 in Lcom/jimmyc/summer/wificollection/WiFiLocationApp$wifiMode;.processResults()V

08-05 21:12:51.790: D/dalvikvm(1782): VFY: dead code 0x0074-00f0 in Lcom/jimmyc/summer/wificollection/WiFiLocationApp$wifiMode;.processResults()V

08-05 21:12:51.798: W/dalvikvm(1782): VFY: unable to find class referenced in signature (Lorg/apache/commons/collections/buffer/CircularFifoBuffer;)

08-05 21:12:51.798: I/dalvikvm(1782): Could not find method org.apache.commons.collections.buffer.CircularFifoBuffer.iterator, referenced from method com.jimmyc.summer.wificollection.WiFiLocationApp$wifiMode.takeAverage

08-05 21:12:51.798: W/dalvikvm(1782): VFY: unable to resolve virtual method 3505: Lorg/apache/commons/collections/buffer/CircularFifoBuffer;.iterator()Ljava/util/Iterator;

08-05 21:12:51.798: D/dalvikvm(1782): VFY: replacing opcode 0x74 at 0x001b

08-05 21:12:51.798: D/dalvikvm(1782): VFY: dead code 0x001e-0419 in Lcom/jimmyc/summer/wificollection/WiFiLocationApp$wifiMode;.takeAverage (Lorg/apache/commons/collections/buffer/CircularFifoBuffer;)Ljava/util/Map;

08-05 21:12:51.798: W/dalvikvm(1782): VFY: unable to find class referenced in signature (Lorg/apache/commons/collections/buffer/CircularFifoBuffer;)

08-05 21:12:51.798: V/Tagging(1782): Starting WiFi mode

08-05 21:12:51.798: D/AndroidRuntime(1782): Shutting down VM

08-05 21:12:51.806: W/dalvikvm(1782): threadid=1: thread exiting with uncaught exception (group=0x4001d8a8)

08-05 21:12:51.806: E/AndroidRuntime(1782): FATAL EXCEPTION: main

08-05 21:12:51.806: E/AndroidRuntime(1782): java.lang.NoClassDefFoundError: org.apache.commons.collections.buffer.CircularFifoBuffer

08-05 21:12:51.806: E/AndroidRuntime(1782): at com.jimmyc.summer.wificollection.WiFiLocationApp$wifiMode.(WiFiLocationApp.java:182)

08-05 21:12:51.806: E/AndroidRuntime(1782): at com.jimmyc.summer.wificollection.WiFiLocationApp.onResume(WiFiLocationApp.java:1272)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.app.Activity.performResume(Activity.java:3823)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2684)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.app.ActivityThread.access$2300(ActivityThread.java:125)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.os.Handler.dispatchMessage(Handler.java:99)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.os.Looper.loop(Looper.java:123)

08-05 21:12:51.806: E/AndroidRuntime(1782): at android.app.ActivityThread.main(ActivityThread.java:4627)

08-05 21:12:51.806: E/AndroidRuntime(1782): at java.lang.reflect.Method.invokeNative(Native Method)

08-05 21:12:51.806: E/AndroidRuntime(1782): at java.lang.reflect.Method.invoke(Method.java:521)

08-05 21:12:51.806: E/AndroidRuntime(1782): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

08-05 21:12:51.806: E/AndroidRuntime(1782): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

08-05 21:12:51.806: E/AndroidRuntime(1782): at dalvik.system.NativeStart.main(Native Method)

08-05 21:12:51.814: W/ActivityManager(1291): Force finishing activity com.jimmyc.summer.wificollection/.WiFiLocationApp

08-05 21:12:52.009: D/dalvikvm(1291): GC_FOR_MALLOC freed 11331 objects/567768 bytes in 76ms

08-05 21:12:52.314: W/ActivityManager(1291): Activity pause timeout for HistoryRecord{457131f0 com.jimmyc.summer.wificollection/.WiFiLocationApp}

08-05 21:12:52.314: D/Sensors(1291): using MMA7660FC Accelerometer (name=MMA7660FC Accelerometer)

08-05 21:12:52.321: D/Sensors(1291): get_orientation portait device

08-05 21:12:52.431: V/LocationManagerService(1291): _requestLocationUpdates: listener = Receiver{45711848 Listener [email protected]}

08-05 21:12:52.840: I//system/bin/batteryd(1189): 1570480 v_bat 3.678 (3.677), i_supply 0.500, i_demand 0.282 => v_bat_idle 3.649 (3.649), level 41% (41%, 41%), state 5

public class test() { 
    CircularFifoBuffer f1 = null; 
    CircularFifoBuffer f2 = null; 

    public test() { 
     Log.v (TAG, "Starting..."); 
     try { 
      f1 = new CircularFifoBuffer(4); 
      f2 = new CircularFifoBuffer(4); 
     } catch (Exception e) { 
      e.printStackTrace(); 
      Log.v (TAG, "Error: " +e); 
     } 
    } 
} 
+0

你如何在Android中添加CircularFifoBuffer? – 2012-08-06 03:33:30

+0

它是作爲外部jar導入的,爲什麼我從apache導入統計信息庫。有什麼特別的我必須爲android – jimmyC 2012-08-06 03:40:53

+0

做什麼你可以發佈你的logcat輸出?我假設你在logcat中看到「Starting ..」mesg,但沒有看到「Error:」mesg? – Maks 2012-08-06 03:56:31

回答

2

從logcat的輸出,它看起來像沒有被包含在您的apk類:

08-05 21:12:51.782: E/dalvikvm(1782): Could not find class 'org.apache.commons.collections.buffer.CircularFifoBuffer', referenced from method com.jimmyc.summer.wificollection.WiFiLocationApp$wifiMode.<init> 

添加會說你最好的選擇將是獲得源代碼,包括在您的項目,並把它在您的構建環境中重新編譯。

+0

它爲什麼會編譯,然後 – jimmyC 2012-08-06 04:15:43

+1

編譯後,編譯器(Eclipse中的ecj或JDK附帶的javac)將*代碼與jar文件中的類鏈接起來沒有問題,但是它的Davlik VM有問題(無法加載Apache類),這可能是因爲dex工具將類文件字節碼交叉編譯爲其自己的字節碼的方式。 – Maks 2012-08-06 04:20:11

+0

謝謝,我得到它的工作。我仍然收到來自Edit1的錯誤消息,但我認爲這可以通過一些挖掘來刪除。至少它正在編譯而不是崩潰。 – jimmyC 2012-08-06 05:02:56

2

檢查你的庫JAR依賴。你可能會錯過一些東西。 (如你所說,你已經在Android之外測試過它了)。

您可能需要從源代碼構建才能使其正常工作,因爲可能使用不同版本的Java構建JAR(Android支持Java 6不是7)。

相關問題