1

私はサーバーとAndroidアプリケーションを含むプロジェクトを持って、サーバーはJavaベースです。私は、サーバーとAndroidアプリケーションで使用できる共通のJavaコード用のgradleモジュールを作成したいと思います。私はgradle javaモジュールとして共通モジュールを作成しました。このモジュールをサーバとアンドロイドアプリ。 私の問題は、グラデルビルドが成功したにもかかわらず、intellijはアンドロイドアプリのJavaモジュールからの依存関係を見つけることができないということです。 私は何をしようとしているのか、それともintellijがそれをサポートしていないのか、何らかの方法がありますか?どのように私はandroidアプリケーションから、Javaアプリケーションをインポートすることができます

答えて

0

あなたはappservercommonモジュールで構成以下の構成を持っている場合:

project/ 
├── app/ 
│ ├── build.gradle 
│ └── src 
├── server/ 
│ ├── build.gradle 
│ └── src 
├── common/ 
│ ├── build.gradle 
│ └── src 
├── build.gradle 
└── settings.gradle 

settings.gradleは、モジュールのリストが含まれています

include ':app',':server',':common' 

あなたのようなモジュール間の複数のサブディレクトリがある場合:

project/ 
├── server/ 
│ ├── subfolder 
     ├── build.gradle 
クラスパスに含め com.android.tools.build:gradle:X.X.XX

include ':app',':server',':common' 
project(':server').projectDir = new File('subfolder/server') 

トップレベルbuild.gradle:10

あなたsettings.gradleは次のようになり

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     mavenCentral() 
    } 
} 

アプリbuild.gradleは、あなたのservercommonモジュールの依存関係を持つcom.android.applicationプラグインを持っています。これはappモジュールのbuild.gradleです:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.example.test" 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile project(':server') 
    compile project(':common') 
} 

servercommonモジュールはjavaプラグインで(IntelliJの-アイデアで)Javaプロジェクトでも同様にAndroidのプロジェクトで使用できるJavaモジュールです。これはservercommonモジュールのbuild.gradleです:

apply plugin: 'java' 

dependencies { 
    //for server module common module dependency : 
    //compile project(':common') 
} 

task sourcesJar(type: Jar, dependsOn: classes) { 
    classifier = 'sources' 
    from sourceSets.main.allSource 
} 

compileJava { 
    sourceCompatibility = "1.7" 
    targetCompatibility = "1.7" 
    options.encoding = 'UTF-8' 
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" 
} 
+0

おかげで、これは私がやっているものですが、IntelliJのは、この設定に問題があると「普通」からクラスを見つけることができません。 – jacob

関連する問題