web-dev-qa-db-ja.com

このクラスファイルのJarは、コンテナの「Android Dependencies」に属しており、そのエントリのソース添付ファイルを変更することはできません

この質問のタイトルにエラーがあるメールアプリケーションを作成しています。この問題を解決するにはどうすればよいですか?解決策を見つけるのに役立つ場合は、コードのスクリーンショットを提供しています。

enter image description here

30
Merve

彼らはADT r17で意図的に破ったもののようです。 http://code.google.com/p/Android/issues/detail?id=27490#c6 を参照してください。

10
Andy Dennie

これに対する公式の解決策があります:

Libs /のサードパーティjarのsrc/doc添付を許可

これらのjarはクラスパスコンテナーを介して動的に追加されるため、開発者はEclipse UIを介してソースパスとjavadocを設定できません(コンテナーはそれらを編集できません)。これを修正し、両方のパスが現在のプロジェクトだけでなく他のプロジェクト(現在のプロジェクトがライブラリプロジェクトの場合)によっても取得されるようにするには、jarファイルの隣にあるファイルによって値が設定されます。ファイルはjarファイルにちなんだ名前で、最後に.propertiesが追加されます。たとえば、foo.jar-> foo.jar.properties現在、2つのプロパティを含めることができます。src:ソースフォルダー(またはアーカイブ)への相対パスまたは絶対パス。 doc:javadocへの相対パスまたは絶対パス。

https://Android-review.googlesource.com/#/c/35702/

編集: Google I/O 2012ビデオの説明

例、Joda-Time 2.1の場合:

cd $PROJECT/libs
touch joda-time-2.1.jar.properties

次を挿入し、パスが正しいことを確認します。

src=/Users/josh.oneal/SDKs/joda-time-2.1/joda-time-2.1-sources.jar
doc=/Users/josh.oneal/SDKs/joda-time-2.1/joda-time-2.1-javadoc.jar

Eclipseでプロジェクトを右クリックして更新し、Command/Ctrl + DateTimeなどのクラスをクリックしてソースを表示できます。

36
WindRider

Eclipseを使用する場合は、ライブラリプロジェクトを選択して[プロパティ]> [注文とエクスポート]に移動し、src依存関係をgen依存関係の上に移動することで修正できます。 .classpathファイルを手動で編集して同じことを行うこともできます。このプロジェクトを削除すると、ソースの添付ファイルが機能するようになります。ソリューションを理解するためのクレジットは NightCrawler に送られます

10
Cristan

コメント8の回避策に注意してください

http://code.google.com/p/Android/issues/detail?id=27490#c8 。 「こんにちは、コメントに記載されている問題の解決策があります。3:

  1. ADT 17は、Android依存関係の下のlibsディレクトリからすべてのjarを自動的に追加するため、libsフォルダーからlibにコンテンツを移動します。
  2. Libディレクトリから依存関係を通常のEclipse依存関係として追加します(ADT 17より前の古い方法)。 JARファイルをソースJARファイルまたはJavadocとリンクします。
  3. プロジェクトプロパティ-> Javaビルドパス->注文およびエクスポートで、プロジェクトクラスファイルに含まれるすべての追加された依存関係を確認します。
  4. Android Tools> Fix Project Properties "を選択します"
3

私は最終的にこれに対する本当の、そして最も簡単な解決策を見つけました。

これはIS IDEを使用し、常に機能します。最もシンプルなソリューションです。

1つのライブラリプロジェクトがライブラリを使用する複雑な構造があり、そのライブラリプロジェクトがプロジェクトに使用されている場合など。またはいずれにしても...この問題を解決するには、次のようにします。

デバッグプロセスのソースコードを表示できるようにするライブラリをEclipseにインポートします。

プロジェクトを右クリックして[ライブラリ]オプションをマークします> [プロパティ]> [Android]

次に、そのライブラリを使用するすべてのライブラリプロジェクトに移動し、プロジェクトを右クリックして[プロパティ]> Android>追加>)、ライブラリを選択します。

次に、プロジェクトと、Project> Properties> Android> Library_nameにあるライブラリプロジェクトに移動し、[削除]をクリックして再度追加します。これは、ライブラリプロジェクトの変更を反映できるようにするためです。

そして、それだけです。これは、ソースコードを表示したいライブラリのjarを使用するのではなく、ライブラリ自体のプロジェクトを使用するだけです。

2
Sterling Diaz

Javax.mailを使用してGmailにアクセスしているときに同じ問題が発生しました。このリンク(http://stackoverflow.com/questions/6546926/could-not-find-class-error-when-trying-to-upload-a-video-to-youtube-using-the-Gd)によれば、それとAndroidに何らかの問題があるようです。

このJARファイルを使用して解決しました: http://code.google.com/p/javamail-Android/

2
Britc

また、この1つの解決策を試してください。プロジェクトフォルダーに移動し、.classpathファイルを開きます。ここでclasspathentryをこのように並べ替えます

<?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>

1つ目は<classpathentry kind="src" path="src"/>、2つ目は<classpathentry kind="src" path="gen"/>です。私の場合、それはすべての問題を解決します。

0
validcat