前人未踏の領域へ アプリ開発編

Android, iOSアプリ開発に関する調査メモ置き場。ほとんどAndroid。はてなダイアリーから移行したため古い記事にはアプリ以外も含まれます。

Lintがコマンドラインで実行できない

Android SDK Toolsを最新化したらLintコマンドがエラーになるようになった。

tools>lint --version
Exception in thread "main" java.lang.NoClassDefFoundError: lombok/ast/AstVisitor
        at com.android.tools.lint.checks.BuiltinIssueRegistry.<clinit>(BuiltinIssueRegistry.java:46)
        at com.android.tools.lint.Main.run(Main.java:127)
        at com.android.tools.lint.Main.main(Main.java:112)
Caused by: java.lang.ClassNotFoundException: lombok.ast.AstVisitor
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 3 more

犯人はlombok-ast.jar。バージョン名付きになっていてclasspathが解決できない。
なのでファイル名を変更して問題を回避。

cd ${ANDROID_SDK_HOME}/tools/lib
cp -pi lombok-ast-0.2.2.jar lombok-ast.jar
または
mv lombok-ast-0.2.2.jar lombok-ast.jar

参考:
https://code.google.com/p/android/issues/detail?id=60190