最近、Androidアプリケーションを開発するためにAndroid Studioをダウンロードしたのですが(Eclipseからの乗り換えです)、外部のライブラリや外部のJARファイルを自分のプロジェクトと一緒に使用する際に問題が発生します。注: 以下のテストは、Android Studioで最初から作成された新規アプリケーションプロジェクトで行われました。
例 1:JARのインポート。
1.Admobs SDKの新しいコピーをGoogleからダウンロードする。
2.ライブラリのjar GoogleAdMobAdsSdk-6.4.1.jar
をプロジェクトの/libs/フォルダにコピーします。
3.3. プロジェクトエクスプローラーで、新しく追加したlibrary.jarを右クリックし、 'Add as Library'をクリックします。
技術的には、この時点ですべてが動作します。インポートは問題なく動作し、レイアウトエディタでは、AdView
ウィジェットのプレビューが表示されます。唯一の問題は、コンパイルがうまくいかないことです。
コンソールからのログです。
Gradle:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':APITests:compilePaidDebug'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.zip'.
gradlew compileDebug --stacktraceを実行してみたところ、コードエディタとデザインエディタの両方でクラスを正常にインポートできているにもかかわらず、コンパイル時にインポートを解決できないという問題があるようです。以下がログの該当部分です。(full stacktrace here)
java:6: error: package com.google.ads does not exist
import com.google.ads.AdRequest;
java:7: error: package com.google.ads does not exist
import com.google.ads.AdView;
java:11: error: cannot find symbol
AdView mAdView;
symbol: class AdView
location: class MainActivity
java:22: error: cannot find symbol
mAdView = (AdView)this.findViewById(R.id.adView);
symbol: class AdView
location: class MainActivity
java:23: error: cannot find symbol
mAdView.loadAd(new AdRequest());
symbol: class AdRequest
location: class MainActivity
5 errors
:Test:compileDebug FAILED
しかし、繰り返しになりますが、インポートはエディタでうまく動作し、依存関係も存在します。
.
また、ライブラリやJARを追加しようとしなくても、プロジェクトは問題なくコンパイルできることも注目に値します。
そこで、build.gradleファイルを編集して、新しいlibを含めるようにしてみました。
dependencies {
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
}
今度はコンパイルに成功しましたが、アプリケーションパッケージ内のlibから特定のクラスを見つけられないようで、アプリが強制終了してしまいます。
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: /data/app/com.foo.test-1.apk
何かアイデアはありますか?
だから
Android Studio 0.1.1を使って、プロジェクトにJARをうまくインポートするための手順をご紹介します。
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
'C:UsersUsernameAndroidStudioProjects\MyApplicationProject\)。
gradlew clean
と入力し、実行されるまで待ちます。Eclipseからプロジェクトをエクスポートして、Android Studioからプロジェクトをインポートすれば、問題は解決するはずですが、Android Studioからインポートせずにeclipseプロジェクトを開くと、問題が発生する可能性があります。 (失礼、私はスペイン語を話します。) http://developer.android.com/intl/es/sdk/installing/migrate.html