Android、Java、Web系、Linux、マラソン等の備忘録

2012/10/18

ActionBarSherlockの導入が一筋縄にいかなかったのでメモ

0 件のコメント
Pattern Calendarを作った時は、このライブラリの存在を知らなかったので、Android 2.xとICSとかと表示が違いなどに困っていましたが、とても有り難いライブラリということで、早速使ってみることにしました。

こちらを参考に
・Android 2.xでAction Barが使えるActionBarSherlockの使い方 - gabuchanの日記
http://d.hatena.ne.jp/gabuchan/20120227/1330302592
Githubはリンク切れてたので、入手先はこちらから
・ActionBarSherlock - Home
http://actionbarsherlock.com/index.html

@Overrideのエラー


まず、ライブラリをAndroid applicationのプロジェクトとして取り込むと、エラーが出ます。



ソース内の@Overrideの所でエラーが出ています。Eclipseの設定を開いて、Java CompilerにJava1.5を使ってるのが問題で、1.6にすれば解決できます。




android-support-v4.jarがかぶる


で、先の解説の通り、自分のアプリを
import com.actionbarsherlock.app.SherlockActivity;

public class MainActivity extends SherlockActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
     setTheme(R.style.Theme_Sherlock);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

と修正して、ビルドをかけるとソースに問題がないのにエラーが残ってます。



Jar mismatch! Fix your dependencies HelloActionBar Unknown Android Dependency Problem

エラーには上記のように表示されています。これは、ライブラリ側と自分のアプリに、android-support-v4.jarが存在しているのが問題のようです。パッケージエクスプローラーから自分のアプリのlibsディレクトリに入っているandroid-support-v4.jarを削除する事で解決できます。



テーマの適用


先ほどのソースで、setThemeの部分でテーマが適用されています。注意点としては、super.onCreteの後に書いてしまうとExceptionが出てしまいます。また、setThemeをしなくても、AndroidManifest.xmlの

android:theme="@style/AppTheme"
android:theme="@style/Theme.Sherlock.Light.DarkActionBar"

のように書き換えてもテーマを適用できます。

適用例




ただ、このように、Android2.x~Android4.1対応でライブラリを適用してしまうと、Hello world!と表示するけだでも、1MBを超えてしまいます。


[参考]
Android 2.xでAction Barが使えるActionBarSherlockの使い方 - gabuchanの日記
android - Greendroid or ActionbarSherlock - setup - Stack Overflow
@Override annotation used wrongly · Issue #28 · JakeWharton/ActionBarSherlock
Problem "JAR mismatch! Fix your dependencies." - Google グループ
android - ActionBarSherlock: java.lang.NoClassDefFoundError: com.actionbarsherlock.R$styleable - Stack Overflow

[PR]
AndroidアプリUIデザイン&プログラミング  アイデア固めからユーザーフィードバック分析まで
Android UI Cookbook for 4.0 ICS(Ice Cream Sandwich)アプリ開発術

0 件のコメント :

コメントを投稿