Home » Android 技巧

[Android]draw9patch 的 NoClassDefFoundError 解決方法

近日 Android 最熱門的就是 Gingerbread(薑餅人) 的話題了,同時 Google 也釋出 2.3 版的 Android SDK。不過當升級之後,若要使用 draw9patch 來修改圖片時,竟然丟出了 NoClassDefFoundError 的問題:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/swingworker/SwingWorker
        at com.android.draw9patch.Application$1.run(Application.java:48)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.jdesktop.swingworker.SwingWorker
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at sun.misc.Launcher$ExtClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        ... 9 more

這問題已經有人回報在 Android’s Google Code 了,同時也有位叫 marius.mathiesen 的網友發現問題在於 $ANDROID_SDK/tools/lib 資料夾中缺少一個 swing-worker.jar 檔的關係。

所以只要下載 swing-worker.jar 並放在 $ANDROID_SDK/tools/lib 中就可以修正此問題囉。

發表迴響