1

我收到以下“NoSuchMethod”异常:

08-16 15:15:16.368: WARN/dalvikvm(3164): Unable to match class for part: 'Ljava/awt/Image;'
08-16 15:15:16.399: WARN/System.err(3164): JRegistry Error: null
08-16 15:15:16.399: WARN/System.err(3164): java.lang.NoSuchMethodException
08-16 15:15:16.446: WARN/System.err(3164):     at java.lang.Class.getDeclaredMethods(Native Method)
08-16 15:15:16.446: WARN/System.err(3164):     at java.lang.ClassCache.getDeclaredMethods(ClassCache.java:153)
08-16 15:15:16.446: WARN/System.err(3164):     at java.lang.Class.getDeclaredMethods(Class.java:774)
08-16 15:15:16.454: WARN/System.err(3164):     at org.jnetpcap.packet.structure.AnnotatedHeader.inspectJHeaderClass(Unknown Source)
08-16 15:15:16.454: WARN/System.err(3164):     at org.jnetpcap.packet.JRegistry.inspect(Unknown Source)
08-16 15:15:16.454: WARN/System.err(3164):     at org.jnetpcap.packet.JRegistry.register(Unknown Source)
08-16 15:15:16.462: WARN/System.err(3164):     at org.jnetpcap.packet.JRegistry.register(Unknown Source)
08-16 15:15:16.462: WARN/System.err(3164):     at org.jnetpcap.packet.JRegistry.<clinit>(Unknown Source)
08-16 15:15:16.462: WARN/System.err(3164):     at org.jnetpcap.Pcap.datalinkToId(Unknown Source)
08-16 15:15:16.470: WARN/System.err(3164):     at org.jnetpcap.Pcap.loop(Unknown Source)
08-16 15:15:16.470: WARN/System.err(3164):     at com.gnychis.coexisyst.Wifi$WifiMon.doInBackground(Wifi.java:494)
08-16 15:15:16.493: WARN/System.err(3164):     at com.gnychis.coexisyst.Wifi$WifiMon.doInBackground(Wifi.java:1)
08-16 15:15:16.493: WARN/System.err(3164):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
08-16 15:15:16.501: WARN/System.err(3164):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
08-16 15:15:16.501: WARN/System.err(3164):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
08-16 15:15:16.509: WARN/System.err(3164):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
08-16 15:15:16.517: WARN/System.err(3164):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
08-16 15:15:16.517: WARN/System.err(3164):     at java.lang.Thread.run(Thread.java:1096)

但是,我不太明白哪种方法是问题所在。是 org.jnetpcap.Pcap.loop 吗?

4

3 回答 3

1

它实际上看起来在 Thread.run 的调用中——检查你的参数。如果它们与 Thread.run 的签名不匹配,你会得到那个错误,我相信。

于 2011-08-16T19:20:41.983 回答
0

似乎 org.jnetpcap.* 是为 J2SE 编写的——它正在寻找 java.awt.Image。开箱即用的 Android API 中不存在 AWT。

有一些解决方案可用于在 Android 上使用 AWT(或 Swing)。

于 2011-08-16T22:07:49.050 回答
0

...dalvikvm(3164):无法匹配部分的类:'Ljava/awt/Image;'

已经在 SO 讨论过:using awt with android

于 2011-08-16T21:10:02.140 回答