web-dev-qa-db-ja.com

Android St​​udio-外部ライブラリ/ Jarのインポート

最近Android St​​udioをダウンロードしてAndroidアプリケーションを開発しました(Eclipseから来ています)。自分のプロジェクトと一緒に外部ライブラリや外部JARファイルを使用すると問題が発生します。 NOTEnewアプリケーションプロジェクトで次のテストを実施しましたAndroid St​​udioでゼロから作成されました。

例1:JARインポート。

  1. GoogleからAdmobs SDKの新しいコピーをダウンロードします。

  2. ライブラリjar GoogleAdMobAdsSdk-6.4.1.jarをプロジェクトの/ libs /フォルダーにコピーします。

  3. プロジェクトエクスプローラーで、新しく追加されたlibrary.jarを右クリックし、[ライブラリとして追加]をクリックします。

技術的にはこの時点ですべてが動作します。インポートは問題なく動作し、レイアウトエディターはAdViewウィジェットとその他すべてのプレビューを表示します。 onlyの問題は、正常にコンパイルされないことです。

コンソールからのログ:

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

しかし、再び、インポートはエディターでうまく機能し、依存関係があります:

enter image description here

また、ライブラリ/ 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

何か案は?

62
daniel_c05

そう、

Android St​​udio 0.1.1を使用してプロジェクトにJARを正常にインポートするための手順:

  • Library.jarファイルをダウンロードし、アプリケーションプロジェクト内の/ libs /フォルダーにコピーします。
  • Build.gradleファイルを開き、依存関係を編集して新しい.jarファイルを含めます。

compile files('libs/Android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')

  • ファイル->プロジェクトを閉じる
  • プロジェクトのルートの場所、つまり'C:\Users\Username\AndroidStudioProjects\MyApplicationProject\'でコマンドプロンプトを開きます。
  • コマンドプロンプトで、gradlew cleanと入力し、完了するまで待ちます。
  • Android St​​udioでアプリケーションプロジェクトを再度開きます。
  • アプリケーションをテスト実行すると、正常に動作するはずです。
99
daniel_c05

Grade:cleanを呼び出すために、プロジェクトを閉じてコマンドラインに移動する必要はありません。ビルド->プロジェクトのリビルドに移動します

31
Tej

簡単な方法とそれは私のために動作します。 Android St​​udio 0.8.2を使用します。

  1. Jarファイルをlibsの下にドラッグします。
  2. 「Gradleファイルとプロジェクトを同期」ボタンを押します。

enter image description here

16
aknay

「シンプルなソリューションはこちら」

1 .libsという名前のフォルダーをappディレクトリの下に作成します。これはプロジェクト内の任意のディレクトリです。

2 .コピーペーストライブラリをlibsフォルダーに

3.You simply copy the JAR to your libs/ directory and then from inside Android Studio, right click the Jar that shows up under libs/ > Add As Library..

平和!

13
Odaym

以下は、admob sdk jarファイル専用に作成した方法です。

  1. jarファイルをlibsフォルダーにドラッグします。
  2. jarファイルを右クリックし、Add Libraryを選択します。jarファイルはライブラリであるため、コンパイルパスに追加できます。
  3. build.gradleファイルを開きます(少なくとも2つのbuild.gradleファイルがあることに注意してください。プロジェクトのスコープで使用するルートを使用しないでください)。
  4. 依存関係セクションを見つけます(私にとっては、admob -GoogleAdMobAdsSdk jarファイルを試していました)。

    dependencies {
       compile files('libs/Android-support-v4.jar','libs/GoogleAdMobAdsSdk-6.3.1.jar')
    }
    
  5. 最後にsettings.gradleに移動して、次のようになっていることを確認します。

    include ':yourproject', ':yourproject:libs:GoogleAdMobAdsSdk-6.3.1'
    
  6. 最後に、Build-> Rebuild Projectに移動します
10
j2emanue

eclipseからプロジェクトをエクスポートしてからAndroid St​​udioからプロジェクトをインポートすると、問題が解決するはずです。Android St​​udioからインポートせずにEclipseプロジェクトを開きます。 :(私の言語を言い訳、スペイン語を話します。) http://developer.Android.com/intl/es/sdk/installing/migrate.html

2
Heberth

Android St​​udioのlibsフォルダーにjarファイルをロードできないという問題がありました。 libsフォルダーにJARファイルを追加した場合は、build.gradleファイルを開いて、他を編集せずに保存します。この行を追加した場合

compile fileTree(dir: 'libs', include: ['*.jar'])

保存してプロジェクトをクリーンアップします。次のビルド時にAndroid St​​udioがJARファイルをロードします。

お役に立てれば。

2
IMRA

Android St​​udio 0.5.2を使用しています。あなたのバージョンが私のものよりも低い場合、私の答えはあなたのために動作しない場合があります。

プロジェクトに新しいJarを追加する3つの方法:

  1. Files-> Project Structureの下のメニュー
  2. F4」を押すだけです
  3. [プロジェクトナビゲーション]で、Javaライブラリを右クリックすると、コンテキストメニューが表示され、[ライブラリ設定を開く]をクリックします。

プロジェクト構造ウィンドウがポップアップします。

左側の列で「ライブラリ」をクリックし、プラス記号「+」がある右側のペインを見てクリックし、新しいライブラリへのパスを入力します。

新しいライブラリが「project\libs \」フォルダーの下にあることを確認してください。そうしないと、プロジェクトのソースコードを保存するときにリンクが壊れる場合があります。

1
Gilson

現在、Android St​​udio 1.4を使用しています。

ライブラリのインポートと追加には、次のフローを使用しました->

1. Press **Alt+Ctr+Shift+S** or Go to **File --> Project** Structure to open up the Project Structure Dialog Box.

2. Click on **Modules** to which you want to link the JAR to and Go to the Dependency Tab.

3. Click on "**+**" Button to pop up Choose Library Dependency.

4. Search/Select the dependency and rebuild the project.

上記のアプローチを使用して、サポートv4およびv13ライブラリをインポートしました。

これが参考になり、フローがクリアされることを願っています。

1
Satish Garg

私はAndroid studio 0.8.6を使用し、プロジェクトの外部ライブラリをインポートするために、ライブラリをlibsフォルダーとbuild.gradle内に貼り付けます。 -services.jar ')

0

Android St​​udio(私の場合は2.3.1)で、[ファイル]-[プロジェクト構造]に移動します。

enter image description here

0
Zon