gpt4 book ai didi

android - 无法弄清楚如何使用嵌套项目设置 gradle build

转载 作者:行者123 更新时间:2023-11-30 01:56:04 27 4
gpt4 key购买 nike

两天以来,我一直在努力弄清楚如何编译以下内容。

我有一个名为“Margin”的 android studio 项目,它将使用库“hbci4java”,而后者又使用项目“cryptalgs4java”。

目录结构如下:

Margin
+-# app
| +-# build
| +-# libs
| | +-# hbci4java
| | +-# src
| | | +-# org/kapott/hbci
| | | | +-# manager
| | | | | +-- HBCIHandler.java
| | | | | +-- ...
| | | | +-- ...
| | | +-- ...
| | |
| | +-# thirdparty
| | | +-# cryptalgs4java
| | | +-# src
| | | +-- build.gradle
| | | +-- ...(other files)
| | |
| | +-- build.gradle
| | +-- settings.gradle
| |
| +-# src
| | +-+ main
| | | +-# java
| | | | +-# de/bvs/margin
| | | | +-# activities
| | | | | +-- MainActivity.java
| | | | | +-- ...
| | | | + ...
| | | |
| | | +-- ...
| | +-- ...
| |
| +-- build.gradle
| +-- ...
|
+-# build
+-# gradle
+-- build.gradle
+-- gradle.properties
+-- settings.gradle
+-- ...

包含 MainActivity 的应用程序在我添加 libs 目录结构之前编译良好,并且它仍然如此,只要我不告诉 android studio 关于此目录的任何信息。但是,我想在我的项目中使用 hbci4java 项目。比方说,我想在我的 Mainactivity 中创建一个 HBCIHandler 对象。

我知道,我必须告诉构建系统,它应该使用 hbci4java 库。但我对不同的 gradle 文件不知所措:

我知道 Margin/app/libs/hbci4java/thirdparty/cryptalgs4java/buid.gradle 用于单独构建 cryptalgs4java。它包含以下内容:

apply plugin: 'java'

repositories {
mavenCentral()
}

sourceCompatibility = 1.5
compileJava.options.encoding = 'ISO-8859-1'

version = '2.5.13-SNAPSHOT'

sourceSets{
main {
java {
srcDir 'src/java'
}
output.classesDir 'classes'
}
}

在构建 hbci4java 项目时,Margin/app/libs/hbci4java/build.gradle 和 Margin/app/libs/hbci4java/settings.gradle 对我来说似乎很清楚:

apply plugin: 'java'

repositories {
mavenCentral()
}

dependencies {
compile project(':thirdparty/cryptalgs4java')
testCompile group: 'junit', name: 'junit', version: '4.+'
}

sourceCompatibility = 1.5
compileJava.options.encoding = 'ISO-8859-1'
compileTestJava.options.encoding = 'ISO-8859-1'

version = '2.5.13-SNAPSHOT'

sourceSets{
main {
java {
srcDir 'src'
}
output.classesDir 'classes'
}

test {
java {
srcDirs 'test'
}
}
}

设置:

include 'thirdparty/cryptalgs4java'

但我完全不确定 android 项目的构建是如何工作的,以及如何让它知道库项目。

以下是剩余的 gradle 文件的内容:

margin /app/build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
applicationId "de.bvs.margin.margin"
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.0'
}

margin /build.gradle:

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

allprojects {
repositories {
jcenter()
}
}

和 Margin/settings.gradle:

include ':app'

我尝试了几个位置来放置 libs 文件夹,还尝试在不同的 gradle 文件中提及它,但到目前为止没有成功。

我希望,任何人都可以帮助我弄清楚如何使用库并让 android studio 知道它们。

最美好的祝愿,斯蒂芬

最佳答案

经过更多的调整,我发现下面的方法可以解决问题:

将以下行添加到 Margin/settings.gradle:

include ':app:libs:hbci4java', ':thirdparty/cryptalgs4java'
project(':thirdparty/cryptalgs4java').projectDir = new File('app/libs/hbci4java/thirdparty/cryptalgs4java')

添加

compile project(':app:libs:hbci4java')

到 Margin/app/build.gradle 中的依赖部分

现在,gradle 能够重新同步,android studio 将允许将项目 hbci4java 添加为 Margin 中的依赖项。

关于android - 无法弄清楚如何使用嵌套项目设置 gradle build,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32190411/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com