Androidプロジェクトを作成し、外部JAR(hessian-4.0.1.jar)をプロジェクトに追加しました。次に、JARをビルドパスに追加し、[注文とエクスポート]で確認しました。
注文とエクスポートは無視されているようですが、実行時に外部JARのすべてのクラスが欠落しています。
Eclipseプラグインを使用してAndroidアプリケーションを構築するときに、外部JARから必要なクラスを適切に含めるトリックはありますか?antやMavenを使用したくない。
Androidプロジェクトを作成し、外部JAR(hessian-4.0.1.jar)をプロジェクトに追加しました。次に、JARをビルドパスに追加し、[注文とエクスポート]で確認しました。
注文とエクスポートは無視されているようですが、実行時に外部JARのすべてのクラスが欠落しています。
Eclipseプラグインを使用してAndroidアプリケーションを構築するときに、外部JARから必要なクラスを適切に含めるトリックはありますか?antやMavenを使用したくない。
回答:
Eclipseの場合
AndroidプロジェクトまたはJavaプロジェクトに外部JARを追加する良い方法は次のとおりです。
libs
プロジェクトのルートフォルダーにというフォルダーを作成しますlibs
ます。次に、Jarファイルを右クリックし、[ビルドパス]> [ビルドパスに追加]を選択します。これにより、プロジェクト内に「参照ライブラリ」というフォルダーが作成されます。
これにより、プロジェクトを別のコンピューターに転送するときに、ハードドライブで参照されているライブラリが失われることはありません。
Android Studioの場合
注意:サードパーティのライブラリを使用している場合は、Gradleスクリプトの実行時にGradleスクリプトがJARと依存関係JARを自動的にダウンロードする推移的な依存関係を使用することをお勧めします。
例:「com.google.android.gms:play-services-ads:9.4.0」をコンパイルします
libs
(ではなくlib
)というフォルダーにある必要があることに注意してください
libs/
ます。JARをに追加するだけです。ビルドパスを手動で変更しないでください。
はい、使用できます。方法は次のとおりです。
このビデオは、問題が発生した場合に役立ちます。
現在SDK 20.0.3を使用していますが、以前のソリューションはどれも機能しませんでした。
hessdroidがhessが失敗した場所で機能する理由は、2つのjarファイルに、異なる仮想マシン用にコンパイルされたjavaが含まれているためです。Javaコンパイラーによって作成されたバイトコードは、Dalvik仮想マシンでの実行が保証されていません。Androidコンパイラーによって作成されたバイトコードは、Java仮想マシンでの実行が保証されていません。
私の場合、ソースコードにアクセスでき、ここで説明した方法を使用してAndroid jarファイルを作成することができました。https: //stackoverflow.com/a/13144382/545064
スタックトレースをよく見ていませんが、問題は外部JARが含まれていないことではありません。
問題は、Androidプラットフォームにjavax.naming。*と、外部JARにも依存関係がある他の多くのパッケージがないことです。
外部JARファイルの追加、およびEclipseでの順序とエクスポートの設定は、Androidプロジェクトで期待どおりに機能します。
Android Studioを使用している場合は、次のようにします(@Vinayak Bsの回答をコピーして変更しました)。
- (パッケージやAndroidの代わりに)プロジェクトのサイドビューでプロジェクトビューを選択します。
- プロジェクトのルートフォルダにlibsというフォルダを作成します
- JARファイルをlibsフォルダーにコピーします。
- サイドビューが更新され、JARファイルがプロジェクトに表示されます
- 次に、インポートする各JARファイルを右クリックし、[ライブラリとして追加...]を選択します。これにより、プロジェクトに含まれます。
- その後は、コード内の新しいクラスを参照するだけです。
import javax.mail.*
Gradleビルドシステムを使用している場合は、次の手順に従います。
Androidアプリのjar
それぞれのlibs
フォルダー内にファイルを配置します。あなたは、一般的にそれを見つけるだろうProject
> app
> libs
。libs
フォルダーがない場合は作成してください。
これをbuild.gradle
ファイルに追加しますapp
。(あなたProject
のものではないbuild.gradle
)
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
// other dependencies
}
これにはjar
、libs
フォルダーで使用可能なすべてのファイルが含まれます。
すべてのjar
ファイルを含めたくない場合は、個別に追加できます。
compile fileTree(dir: 'libs', include: 'file.jar')
プロジェクト内にフォルダー(libなど)を作成し、jarをそのフォルダーにコピーします。次に、プロジェクトを右クリックしてビルドパスを構成し、ビルドパスを選択します
「jarを追加」で 、作成したフォルダーを参照し、jar を選択します。
.jarファイルをAndroidプロジェクトのフォルダーにコピーできるとは限りません。
特に、それがワークスペース内の別のプロジェクトの出力であり、更新され続ける場合。
これを解決するには、jarをインポートする(ローカルにコピーする)代わりに、jarをリンクファイルとしてプロジェクトに追加する必要があります。
UIで次を選択します。
プロジェクト->インポート->ファイルシステム-> yourjar.jar->(オプション領域)詳細->ワークスペースにリンクを作成。
リンクは.projectファイルに保存されます。
<linkedResources>
<link>
<name>yourjar.jar</name>
<type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/bin/android_ndk10d_armeabi-v7a/yourjar.jar</locationURI>
</link>
</linkedResources>
PARENT-5-PROJECT_LOC
は、プロジェクトファイルを基準にして、5つのディレクトリ(../../../../../)を基準にしています。
次に、ライブラリに追加します。
プロジェクト->プロパティ-> Javaビルドパス->ライブラリ-> Add Jar-> yourjar.jar
同じウィンドウで[ 注文とエクスポート ]タブを選択し、jarをマークしてapkに追加します。