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のページが見つかりました。
これによると、「これは単なるwarningなんで気にするな」だそうです…
proguard.cfgに
-dontwarn -dontnote
を付け加えればいいそうです。実際にこれでちゃんとapkファイルができあがりました。ほんとかなぁ、という気もしますが。