Proguardでcan't find referenced class

SDK Tools r8とADT8.0.0から、Proguardを導入するのが簡単になりました。

しかし、Export Android applicationをしても、以下のようにクラスが見つからないよ、と出てきてproguardが実行できませんでした。

[2011-02-05 22:41:55 - ] Proguard returned with error code 1. See console
[2011-02-05 22:41:55 - ] Warning: org.apache.http.entity.mime.FormBodyPart: can't find referenced class net.jcip.annotations.NotThreadSafe
[2011-02-05 22:41:55 - ] Warning: org.apache.james.mime4j.codec.QuotedPrintableInputStream: can't find referenced class org.apache.commons.logging.LogFactory
[2011-02-05 22:41:55 - ] Warning: org.apache.james.mime4j.codec.QuotedPrintableInputStream: can't find referenced class org.apache.commons.logging.LogFactory

(中略)

[2011-02-05 22:41:55 - ]       You should check if you need to specify additional program jars.
[2011-02-05 22:41:55 - ] Warning: there were 44 unresolved references to classes or interfaces.
[2011-02-05 22:41:55 - ]          You may need to specify additional library jars (using '-libraryjars'),
[2011-02-05 22:41:55 - ]          or perhaps the '-dontskipnonpubliclibraryclasses' option.
[2011-02-05 22:41:55 - ] java.io.IOException: Please correct the above warnings first.
[2011-02-05 22:41:55 - ] 	at proguard.Initializer.execute(Initializer.java:308)
[2011-02-05 22:41:55 - ] 	at proguard.ProGuard.initialize(ProGuard.java:210)
[2011-02-05 22:41:55 - ] 	at proguard.ProGuard.execute(ProGuard.java:85)
[2011-02-05 22:41:55 - ] 	at proguard.ProGuard.main(ProGuard.java:499)


軽くぐぐると、いつもお世話になってるStackOverFlowのページが見つかりました。

http://stackoverflow.com/questions/4525661/android-proguard-cant-find-dynamically-referenced-class-javax-swing


これによると、「これは単なるwarningなんで気にするな」だそうです…

proguard.cfgに

-dontwarn
-dontnote

を付け加えればいいそうです。実際にこれでちゃんとapkファイルができあがりました。ほんとかなぁ、という気もしますが。

AutoFolderSyncを公開しました。

自動的にDropboxと同期してくれるAndroid用のツール、AutoFolderSyncを公開しました。

このAutoFolderSyncは、設定した同期フォルダを見張っており、ファイルが更新されるとすぐにDropboxと同期します。つまり、テキストファイルを編集し、保存すると勝手に同期してくれます。ネットワークにつながっていない場合は、つながったときに自動的に同期してくれます。

また、衝突にも考慮しています。ネットワークにつながっていないときに手元のファイルを編集しつつ、別のPCでそのファイルを編集すると、どっちにあわせていいか分かりません。この場合、"Conflicted"とファイル名につけて、同期します。つまり、二つのファイルができることになります。

特に拙作のsheditorと連携して使うといいのではないかと思っています。

注意点

  • *子の階層のフォルダは同期しません*
    • 同期するのはそのフォルダだけであり、下のフォルダは同期しません
  • ファイルを変更してもすぐに同期してくれないときがあります
    • これはメモリが足りなくてAutoFolderSyncが殺されるためです
    • 次のサーバのチェックの時(標準では5分後)に同期します

Liteバージョン/Proバージョン

現在Liteバージョンを公開中です。なぜか"Lite"の文字がタイトルから消えているのですが。なんでだろう…

もしよろしければ、使ってください。また、コメントを頂けると大変ありがたく思います。

ただ、かなり自分ではテストしましたが、まだバグはあると思います。もしも不具合がありましたら、その旨連絡して頂けると、出来る限りなんとかしたいと思っています。