将依赖项添加到模块 - 外部库错误
Add Dependency to module - External Library Error
我创建了一个外部库,希望将其开源。我将它作为模块导入没有问题。
我必须在导入后解决这个问题:
添加依赖是我想要做的。我不想把它移到 :app.
当我添加依赖项时,问题就消失了。导入引用了正确的文件。在构建时我遇到了这个问题:
我认为解决方案必须是在外部库的 build.gradle 文件中引用 java 文件,但我找不到任何好的示例,甚至无法证明这可以解决问题。
library 是模块名。
提前致谢。
编辑:
build.gradle 应用
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "23.0.0 rc3"
defaultConfig {
applicationId "com.weaverprojects.toundertest1"
minSdkVersion 21
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services-gcm:7.5.0'
}
build.gradle 图书馆
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "23.0.0 rc3"
defaultConfig {
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
//compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.google.android.gms:play-services-gcm:7.5.0'
}
Settings.gradle
include ':app', ':library'
假设您的 library 作为自己的项目存在,并且它的路径相对于您的 main 项目的顶级文件夹是 ../mylibs/library/ 我认为你的 settings.gradle 应该改变如下:
project(':library').projectDir = new File('../mylibs/library/');
并且以下内容需要进入 main/app/build.gradle 文件的依赖项部分(我认为这是第一个代码转储你的问题)。
compile project(':library')
顺便说一句,请考虑将 :library 重命名为其他名称(这不是问题的根源,但几个月后查看名称时可能会造成混淆)
我创建了一个外部库,希望将其开源。我将它作为模块导入没有问题。
我必须在导入后解决这个问题:
添加依赖是我想要做的。我不想把它移到 :app.
当我添加依赖项时,问题就消失了。导入引用了正确的文件。在构建时我遇到了这个问题:
我认为解决方案必须是在外部库的 build.gradle 文件中引用 java 文件,但我找不到任何好的示例,甚至无法证明这可以解决问题。
library 是模块名。
提前致谢。
编辑: build.gradle 应用
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "23.0.0 rc3"
defaultConfig {
applicationId "com.weaverprojects.toundertest1"
minSdkVersion 21
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services-gcm:7.5.0'
}
build.gradle 图书馆
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "23.0.0 rc3"
defaultConfig {
minSdkVersion 19
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
//compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.google.android.gms:play-services-gcm:7.5.0'
}
Settings.gradle
include ':app', ':library'
假设您的 library 作为自己的项目存在,并且它的路径相对于您的 main 项目的顶级文件夹是 ../mylibs/library/ 我认为你的 settings.gradle 应该改变如下:
project(':library').projectDir = new File('../mylibs/library/');
并且以下内容需要进入 main/app/build.gradle 文件的依赖项部分(我认为这是第一个代码转储你的问题)。
compile project(':library')
顺便说一句,请考虑将 :library 重命名为其他名称(这不是问题的根源,但几个月后查看名称时可能会造成混淆)