18

最新のAndroidSDK以降、「通常の」ビルドパスを介した参照である他のEclipseプロジェクトにあるクラスが見つからないため、EclipseからAndroidアプリケーションを実行できなくなりました。

これは間違いなく以前に機能しました。Eclipseにはコンパイルエラーはありません。

それは、Androidプロジェクトによって参照されている場合に備えて、これらのプロジェクトをAndroidライブラリプロジェクトとしてマークする必要があるということかもしれません。

編集:これが壊れている理由のようです:http: //tools.android.com/recent/dealingwithdependenciesinandroidprojects

しかし、「通常の」JavaプロジェクトをAndroidアプリプロジェクトに参照する方法を理解する必要があります。

4

5 に答える 5

18

提供されたリンク@clamp には、次の文があります。

コンテナには、ライブラリ プロジェクトによって参照される Java のみのプロジェクトも取り込まれます。

これは、空のライブラリ プロジェクトを、Android プロジェクトと通常の Eclipse プロジェクトの間の「接着剤」プロジェクトとして使用できることを意味します。次のように設定するだけです。

android --> 「glue」プロジェクト --> 通常のプロジェクト

--> 依存することを意味します

グルー プロジェクトは、通常のプロジェクトをエクスポートする必要があり、ライブラリとしてマークする必要があります。Android プロジェクトでは、ライブラリ プロジェクトのみを参照する必要があります。

通常のEclipseプロジェクトを使用すると、「接着剤」プロジェクトのオーバーヘッドが最小限に抑えられます。

于 2012-04-19T11:51:40.883 に答える
12

Eclipseビルドツールの最新の更新以降、「Javaビルドパス」の「注文とエクスポート」タブで参照されているプロジェクトにもチェックマークを付ける必要があります。これで同じ問題が修正されました。お役に立てば幸いです。

于 2012-03-27T14:55:54.640 に答える
3

既に述べたように、Android は Java プロジェクト ファイルを直接コンパイルして使用することはありません。代わりに、プリコンパイルされたクラス ファイルのみを使用します。

これが私の回避策です。これは、Android ライブラリだけに「接着剤」プロジェクトが必要ないためです。主なアイデアは、ビルド済みの JAR を Android に提供し、Eclipse での作業中にライブラリのソース コードを引き続き使用することです。

  1. まず、ライブラリ プロジェクトが Java 6 を使用してコンパイルされていることを確認してください。Java 7 は動作しません。Android はこれらのライブラリを黙って無視します。Preferencesそのため、ワークスペースの設定 ( -> Java->内Compiler) と個々のプロジェクトの設定の両方を確認してください。コンパイラ準拠レベルとして 1.6 を選択します。
  2. Android プロジェクトを右クリック -> Properties-> Java Build Path-> Projects. Android プロジェクトで使用するすべての Java プロジェクトを追加します。
  3. 現在、Eclipseはクラスを認識しています (ただし、まだ最終的な Android ビルドではありません)。したがって、ビルド エラーは解決され、クラスにジャンプすると、Java プロジェクトの元のソース ファイルに直接アクセスできます。
  4. Android プロジェクトのディレクトリに ant ビルドスクリプトを追加します。このビルドスクリプトは、プロジェクトのすべての .class ファイルを含む JAR をlibsサブディレクトリに作成します (これは、 Androidに .class ファイルを認識させるステップです!)。コードについては、以下を参照してください。
  5. Java プロジェクトが変更された場合は常に、ビルドスクリプトを実行して JAR ファイルを再構築します。これは自動化することもできます。たとえば、「Eclipse Java プロジェクトで ant ビルド ファイルを自動的に実行する」を参照してください。

コードは次のとおりです。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_jar" name="Create Jar with classes from Java projects">
<target name="create_jar">
    <jar destfile="libs/java-projects.jar">
        <!-- "bin" is the class output folder -->
        <fileset dir="path/to/first/java/project/bin"/> 
        <fileset dir="path/to/second/java/project/bin"/>

        <fileset dir="path/to/last/java/project/bin"/>
    </jar>
</target>

于 2013-03-10T14:43:45.513 に答える
1

依存プロジェクトからクラス ファイルをコピーする ant プロジェクト ビルダーを追加しました。Ant ファイルは android プロジェクトに存在し、参照されたプロジェクトからクラス ファイルをコピーします。これがアリです:

<?xml version="1.0" encoding="UTF-8"?>
<project name="CommonsCopy" default="copy" basedir=".">
    <target name="copy">
        <copy todir="bin/classes">
            <fileset dir="../Commons/bin" includes="**/*.class">
            </fileset>
        </copy>
    </target>
</project>

覚えておくべき2つのこと:

  1. 参照されている Java プロジェクトが使用する jar ファイルをコピーする方法を見つけるか、Android の libs フォルダーに直接配置します。
  2. 参照プロジェクトは、1.6 準拠レベルでコンパイルする必要があります。
于 2013-10-19T21:14:56.400 に答える