Android 模块依赖关系
我正在尝试一个有两个模块的项目,比如说Android 模块依赖关系,android,gradle,android-studio,Android,Gradle,Android Studio,我正在尝试一个有两个模块的项目,比如说M1和M2M1应将M2作为依赖项。我在M2中添加了一个类Test,我想从M1访问它 我正在使用Android Studio 0.3.2。无论我尝试什么(重新导入项目、同步梯度文件等等),我都无法从M1访问Test类:无法解析符号“Test” 文件夹结构: - root - M1 - src - build.gradle - ... - M2 - src - bui
M1
和M2
M1
应将M2
作为依赖项。我在M2
中添加了一个类Test
,我想从M1
访问它
我正在使用Android Studio 0.3.2。无论我尝试什么(重新导入项目、同步梯度文件等等),我都无法从M1
访问Test
类:无法解析符号“Test”
文件夹结构:
- root
- M1
- src
- build.gradle
- ...
- M2
- src
- build.gradle
- ...
- build.gradle
- settings.gradle
- ...
include ':M1', ':M2'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
}
dependencies {
compile project(':M2')
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
}
dependencies {
}
根目录/设置。渐变:
- root
- M1
- src
- build.gradle
- ...
- M2
- src
- build.gradle
- ...
- build.gradle
- settings.gradle
- ...
include ':M1', ':M2'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
}
dependencies {
compile project(':M2')
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
}
dependencies {
}
root/build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
root/M1/build.gradle:
- root
- M1
- src
- build.gradle
- ...
- M2
- src
- build.gradle
- ...
- build.gradle
- settings.gradle
- ...
include ':M1', ':M2'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
}
dependencies {
compile project(':M2')
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
}
dependencies {
}
root/M2/build.gradle:
- root
- M1
- src
- build.gradle
- ...
- M2
- src
- build.gradle
- ...
- build.gradle
- settings.gradle
- ...
include ':M1', ':M2'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
}
dependencies {
compile project(':M2')
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
}
dependencies {
}
运行gradlew compileDebug
会给出:
root\M1\src\main\java\com\mypackage\m1\MainActivity.java:28: error: package com.mypackage.m2 does not exist
com.mypackage.m2.Test test;
^
我应该怎么做才能解决这个问题?您的两个模块都使用了android应用程序插件
apply plugin: 'android'
如果M1依赖于M2,那么M2必须是一个库项目,它的gradle文件应该是
apply plugin: 'android-library'
奇怪的我有一个类似的配置,它工作得很好。所以,显而易见的问题是:当你在Android Studio中打开
MainActivity
时,你是否看到com.mypackage.m2
下的红色波浪?类Test
实际存在吗?你把包裹导入了吗?您是否尝试过运行com.mypackage.m2.Test中的gradlew clean build
?单词Test
代码>为红色。自动完成找不到包m2
。它确实存在于模块M2
中<代码>导入com.mypackage.m2.*代码>导致未使用的导入语句
(但没有错误)。我刚刚试过运行gradlew clean build,没有结果。啊,是的,就是这样!谢谢