Thursday, December 23, 2010

Android Draw 9-patch seems broken too

As far as I can tell, the current release of the Android SDK (R08) ships without the Swing Desktop jar, and this causes draw9patch to fail.
~$ draw9patch &
[2] 52452
~$ 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(InvocationEvent.java:209)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
 at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

[2]+  Done                    draw9patch

The 'fix' is rather simple: just download the JAR for Swing Desktop from here, and drop the swinglabs-0.8.0.jar file into the [sdk-install-dir]/tools/lib folder.

The Swing Desktop project can be found here.



Update -- Richard just left a comment here and pointed me to his site (Android 9 Patch) who's got plenty of 9-patch icons that really look awesome, and I thought I'd share the goodness (especially, given he's so kind as to share them at no charge). 

Go check out Patch 15, it's pretty impressive!

11 comments:

  1. Thanks Marco!!! :) Life saver (though I didn't use it in the end but I hate to see things break for no reason).

    Hope you don't mind, I posted your solution to another guy suffering from the same pain . I also added your solution as part of one of my blog entries (with backlink to you). If you don't like it, pls email me at my gmail acc.

    ReplyDelete
  2. I have some graphics that can be use by your users for their test and various android projects here: http://android9patch.blogspot.com/

    They are all free to use including for commercial apps.

    Enjoy!

    Richard Lalancette

    ReplyDelete
  3. Hey Richard -- that's really cool stuff!
    I'll update my post later to point the main text to your site (and, I can already see I'll use some of your stuff on my Android Receipts LoL https://sites.google.com/site/androidreceipts/ )

    Thanks for sharing!

    ReplyDelete
  4. Great Marco!

    Glad it's coming to be used.

    I'll have more 9-patch sometime this weekend.
    Writting the app was taking too much of my time :)

    ReplyDelete
  5. Marco,

    There are now 500+ free 9-patch images ready!!!

    I have finally managed to complete the android browser you can find here: http://market.android.com/details?id=com.android9patch.viewer

    More to come soon!

    Cheers!

    ReplyDelete
  6. In case people bang their heads on why 9-patches don't work, I found out that they all need to be in one directory drawable-xhdpi. Even if there are other .9.png files that you don't use at all, in any other directory, they won't work.

    ReplyDelete
  7. đồng tâm
    game mu
    cho thuê nhà trọ
    cho thuê phòng trọ
    nhac san cuc manh
    số điện thoại tư vấn pháp luật miễn phí
    văn phòng luật
    tổng đài tư vấn pháp luật
    dịch vụ thành lập công ty trọn gói

    Thành Tử Ngang đột nhiên hiểu rõ, thiếu niên đứng trước mặt mình có tâm tư thâm sâu đến mức khó lường. Ở trước mặt của hắn, cho dù là bất cứ ai cũng đều không thể che giấu được!

    Lúc này đây, mặc dù hắn không nói bất cứ gì nhưng rõ ràng chính là đến tìm mình đây.

    Hành tung của ngươi, tất cả đều nằm trong lòng bàn tay của ta. Ngàn vạn lần không nên có chủ gì gì sai lệch, nếu không ngươi sẽ hối hận!

    Ý tứ chính là ở chỗ này sao.

    Nhìn theo thân ảnh ung dung rời đi của Sở Dương, Thành Tử Ngang buông một tiếng thở dài thật sâu.

    Sở Dương đi trong gió đêm, cảm giác rất là sảng khoái. Hắn luôn luôn chú ý đến Thành Tử Ngang bởi vì hắn xác định Thành Tử Ngang chính là người đại diện cho Thiết Bổ Thiên ở Bổ Thiên Các.

    Thành Tử Ngang có thể là một cao thủ, nhưng lại không phải là một người dẫn đầu hợp cách! Sở dĩ hắn có thể leo lên chức vị Các chủ, thứ nhất là bởi vì hắn là người có thực lực cao nhất hiện tại, thứ hai cũng là vì hắn đáng tin

    ReplyDelete