2016-07-12 17 views
0

IntelliJで作業し、Github経由でアプリケーションのソースコードをアップロードしてプロジェクトを作成します。IntelliJでJavaクラスに必要な依存関係を指定する方法は?

(私が知る限り)依存関係のためにJavaクラスをコンパイルするのが最も困難です。 Javaクラスの依存関係として必要な.jarファイルは、.idea/librariesフォルダに.xmlファイルとして表示されます。私はView/Tool Windows/Gradleに行き、Tasks/android/androidDependenciesをLOCALの依存関係としてダブルクリックすると表示されます。しかし、私のJavaクラスファイルには、インポートされた.jarファイルの依存関係の変数がありますが、まだ解決できません。 .jarファイルをプロジェクトライブラリに追加しようとすると、Gradleはプロジェクトを同期するように要求し、その結果、プロジェクトライブラリ内の.jarファイルのディレクトリがプロジェクト/アプリケーションファイルに変更され、赤色で壊れた。私がプロジェクトを同期させないと、それらの.jar依存関係から派生したJavaクラスのインスタンスが見つからない(依存関係を参照していない)というコンパイルエラーがあります。

私のapp/build.gradleファイルは次のようになります(正しく動作しない依存関係は最後の4つです:selenium-server-standalone-2.53.0.jar、jacoco-maven-plugin -0.7.7.201606060606.jar、jbrofuzz-core-2.5.jar、java-client-4.0.0.jar)

誰でも私がこれを理解するのを助けることができますか?私は必要に応じてより多くの情報を提供することができます。

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 
    //noinspection GroovyAssignabilityCheck 
    defaultConfig { 
     applicationId "eu.wikijourney.wikijourney" 
     minSdkVersion 15 
     targetSdkVersion 22 
     versionCode 21 
     versionName '1.2.0' 
    } 
    //noinspection GroovyAssignabilityCheck 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    //noinspection GroovyAssignabilityCheck 
    packagingOptions { 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/DEPENDENCIES' 
    } 
    //noinspection GroovyAssignabilityCheck 
    productFlavors { 
    } 
//noinspection GroovyAssignabilityCheck 
    lintOptions{ // https://stackoverflow.com/a/32676398/3641865 
     disable 'MissingTranslation' // So gradle stops complaining about the generated app_version string 
            // not present in all translations. This is a (not so) ugly hack. 
    } 
    // https://stackoverflow.com/a/29525111/3641865 
    applicationVariants.all { variant -> 
     variant.resValue "string", "app_version", variant.versionName 
    } 
} 

repositories { 
    mavenCentral() 
    flatDir { 
     dirs 'libs' 
    } 
} 
//noinspection GroovyAssignabilityCheck 
dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:appcompat-v7:22.2.1' 
    compile 'com.android.support:design:22.2.1' 
    compile 'com.android.support:recyclerview-v7:22.2.1' 
    compile 'com.android.support:cardview-v7:22.2.1' 
    compile 'com.android.support:support-v4:22.2.1' 
    compile 'com.squareup.picasso:picasso:2.5.2' 
    compile 'com.loopj.android:android-async-http:1.4.9' 
    compile 'org.apache.commons:commons-lang3:3.3.2' 
    compile 'com.google.code.gson:gson:2.3.1' 
    compile 'org.osmdroid:osmdroid-android:[email protected]' 
    compile 'com.github.MKergall.osmbonuspack:OSMBonusPack:v5.6' 
    compile 'com.github.k3b:k3b-geoHelper:v1.1.1' 
    compile files('selenium-server-standalone-2.53.0.jar') 
    compile files('jbrofuzz-core-2.5.jar') 
    compile files('jacoco-maven-plugin-0.7.7.201606060606.jar') 
    compile files('java-client-4.0.0.jar') 
    // compile 'com.github.k3b:APhotoManager:k3b-geoHelper:test-libgeo-0.4.7.160321' 
} 

答えて

0

このライン

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

は、それはあなたのプロジェクトのlibsディレクトリに置くすべてのJARファイルをコンパイルする予定だという。つまり、これらの行を削除することができます。

compile files('selenium-server-standalone-2.53.0.jar') 
compile files('jbrofuzz-core-2.5.jar') 
compile files('jacoco-maven-plugin-0.7.7.201606060606.jar') 
compile files('java-client-4.0.0.jar') 

そして、それのlibsフォルダ(それが存在しない場合は、それを作る)にすべてのJARを移動します。引き続きエラーが発生した場合は、さらに依存関係がなくなってしまいます。

さらに、可能な限り、必要なライブラリをMavenから探してください。 (含める必要のある依存関係を確認するには、[Gradle]タブを使用してください)

少なくとも、これらの依存関係の1つでは、the JitPack instructionsを使用できます。

+0

これを説明してくれてありがとう!私は、私のJavaクラスと同じフォルダにlibsフォルダを作る必要がありますか? –

+0

ここを参照してください。 https://stackoverflow.com/questions/16608135/android-studio-add-jar-as-library –

+0

さて、アプリのフォルダ内に.jarファイルを含むフォルダ "libs"を追加しましたが、私のコードはまだcouldnできませんでした変数などを解決しません。それから私はアプリのフォルダと同じレベルに私の.jarファイルで "libs"フォルダを追加しようとしましたが、どちらもうまくいきませんでした。 –

関連する問題