将外部项目包含到Android应用中

时间:2015-11-20 14:53:46

标签: android android-studio intellij-idea gradle

我目前正在尝试将旧项目从eclipse迁移到Android Studio。该项目包含一个“核心模块”(包含许多网络内容),一个Android应用程序和一个Java PC应用程序,它们都包含相互通信的核心模块。每个应用程序和核心都有自己的回购。

当使用eclipse应用程序时,PC应用程序和核心是同一工作区中的三个独立eclipse项目和两个依赖于核心项目的应用程序。

我成功地将Android应用程序移动到Android Studio,将核心移动到带有gradle的IntelliJ。 我现在尝试告诉Android Studio在构建应用时编译核心。我的文件结构如下所示:

GitHub
------\ AndroidApp
----------------\ build.gradle
----------------\ settings.gradle
----------------\ app
---------------------\ build.grale
------\ NetworkCore
----------------\ build.gradle
----------------\ settings.gradle

AndroidApp /的build.gradle

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

AndroidApp / settings.gradle

include ':app', 'core'
project(':core').projectDir = new File('../NetworkCore')

AndroidApp /应用/的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        applicationId "xxxxxxxxxxx"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:19.1.0'
    compile project(':core')
}

NetworkCore /的build.gradle

group 'xxxxxxxxxx'
version '1.0-SNAPSHOT'

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

NetworkCore / settings.gradle

rootProject.name = 'xxxxxxx'

问题

Android Studio将核心检测为模块,并正确列出左侧边栏中的所有文件。但是当编译Android Studio时,无法从核心发现类,有时甚至是app模块中的类(如Fragment类等)。

我做错了什么?非常感谢您提前:))

1 个答案:

答案 0 :(得分:1)

您在AndroidApp/settings.gradle文件中缺少冒号吗?

include ':app', ':core'
project(':core').projectDir = new File('../NetworkCore')