2011-12-09 6 views
3

私はこのライブラリプロジェクトを使用しています:https://github.com/JakeWharton/Android-ViewPagerIndicator 私のプロジェクトで動作させるために、gitが提供するソースコードに基づいて新しいプロジェクトを作成しました。私の最終的なプロジェクト。すべてうまく動作します。簡易Eclipseライブラリプロジェクトをjarにする

<com.viewpagerindicator.TitlePageIndicator 
     android:id="@+id/indicator" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

私はこのライブラリプロジェクトのリファレンスを避け、私の最終プロジェクトでは単純なジャーを使用したいと思います。ライブラリプロジェクトでjarファイルを生成し、JavaビルドパスでFinalプロジェクトに追加しました。 私はそれを実行すると、私はエラーを取得する:

12-09 10:57:34.714: E/AndroidRuntime(10492): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.SettingsActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class com.viewpagerindicator.TitlePageIndicator 

は、それは私が欲しいものを達成することは可能ですか?

+0

プロジェクト内にライブラリプロジェクトを追加しますか? –

+0

はい私はそれを追加しましたが、jarファイルだけを追加するほうが簡単です。再利用やプロジェクトソースコードの送信が容易なからです。これが質問の内容です。 – Alin

+0

ライブラリプロジェクトをJarファイルとしてエクスポートし、プロジェクト内でインポートします –

答えて

6

Androidデベロッパーツールの現在のバージョン(15.0.1)では、リソース(レイアウト、カスタム属性など)を含むプロジェクトを簡単な.jarとしてバンドルすることはできません。 the library project documentation 1として

However, a library project differs from an standard Android application project in that you cannot compile it directly to its own .apk and run it on an Android device. Similarly, you cannot export the library project to a self-contained JAR file, as you would do for a true library. Instead, you must compile the library indirectly, by referencing the library in the dependent application and building that application.

ADTは現在、以前気質純粋にプロジェクト参照を回避する目的をリンクするためのEclipseでライブラリプロジェクトの.jarを添付する。ただし、これにバンドルされているリソースはありません。

ADT Toolsウェブサイトのdownload pageには、これがADT 16にADT Tools 16のプレビュー2のように表示されることが示されていません。現在の噂では、これはまだ道のりが良いツールのバージョン17に移行するということです。 TwitterやAndroidデベロッパーのチャットルームから主に聞いているように、私はこれを引用することはできません。

今のところ、あなたはそれをライブラリプロジェクトとして使用しています。

信託私、誰も私よりも多くをよ:)

+0

ありがとうございました。 – Alin

+0

@Jake:あなたの情報源を教えてくれますか? http://developer.android.com/guide/developing/projects/index.html#LibraryProjectsで私は次のように見つけました。注:各ライブラリプロジェクトを生成する新しいライブラリプロジェクト機能を使用するには、SDKツールr14以降が必要です独自のJARファイルを作成します。しかし、これは何かを意味するかもしれません。 SDKツールのリビジョンノート、改訂14(2011年10月)では、「ライブラリプロジェクトの構築方法を変更しました。 –

+0

できるだけ多くの引用と説明を追加しました。この機能のためにb.android.comで元のバグを見つけることができませんでした。 –

0

私はjarファイルを使用していないよ.jarとしてこれらのプロジェクトをバンドルしたいと考えていませんが、私は同じエラーメッセージを持っていたし、Eclipseで、それをこのように固定: プロジェクトを右クリックし、[プロパティ]> [Android]の順に進み、[ライブラリ]ボックスで[追加]をクリックし、ViewPagerIndicatorを選択します。

0

私もこのレイアウトはエラーを膨らませていました...私はこれがかなり古いポストだと知っていますが、誰もが同じエラーで立ち往生したという希望で私の返信を投稿しています...私はすべてのステップそれはブログに含まれています...しかし私がした間違いは私のライブラリファイルが非常に長いパス(C:/ Users // Downloads/Jakewhartan ... yada、yada yada/Jakewhartan ...../libs)それが問題でした...私はF:/ workdpace/mylibsのような小さなパスに移行しました。それはうまくいきました.......

今、私はWindowsが正しくサポートしていないことに注意してくださいLONG PATHS ..

1

私はTitlePageIndicatorをdinamicallyで作成しましたが、例外はスローしません:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ViewPagerAdapter adapter = new ViewPagerAdapter(this); 

    ViewPager pager = new ViewPager(this); 
    pager.setAdapter(adapter); 

    TitlePageIndicator indicator = new TitlePageIndicator(this); 
    indicator.setViewPager(pager); 

    LinearLayout body = (LinearLayout) findViewById(R.id.body); 
    body.addView(indicator); 
    body.addView(pager); 

}