gpt4 book ai didi

java - Gradle绝对/相对路径

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:31 25 4
gpt4 key购买 nike

我有以下问题。当我想在我的 Gradle 依赖项中使用本地 jar 时。

如果我只是添加:

compile files('libs/PushLinkAndroid-5.3.0.jar')

这是行不通的。

C:\Users\Kai\AndroidStudioProjects\ProjectA\app\src\main\java\de\xyz\xxx\projecta\BaseActivity.java:21: error: package com.pushlink.android does not exist import com.pushlink.android.PushLink;

Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. 4 errors

FAILED

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':app:compileDebugJava'.

    Compilation failed; see the compiler error output for details.

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 >--debug 选项运行以获得更多日志输出。

构建失败

总时间:6.543 秒

如果我将绝对路径添加到 Jar,项目将编译并且一切正常:

compile files('C:/Users/Kai/AndroidStudioProjects/ProjectA/libs/PushLinkAndroid-5.3.0.jar')

看起来 Path 有问题,但是当绝对 Path 工作正常时,这怎么可能呢?

编辑:构建.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
applicationId "de.xyz.kai.migraenebook"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
//compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.jakewharton:butterknife:7.0.1'
compile project(':volley')
debugCompile 'im.dino:dbinspector:3.2.1@aar'
compile 'de.hdodenhof:circleimageview:1.3.0'
compile 'com.android.support:recyclerview-v7:+'
//compile files('C:/Users/Kai/AndroidStudioProjects/MigraeneBook/libs/PushLinkAndroid-5.3.0.jar')
compile files('libs/PushLinkAndroid-5.3.0.jar')
//compile files('libraries/PushLinkAndroid-5.3.0.jar')
//compile files('C:/Users/Kai/AndroidStudioProjects/MigraeneBook/libraries/PushLinkAndroid-5.3.0.jar')
}

注意:我尝试了不同的文件夹,PushLink.jar 在“libs”和“libraries”中。我使用或注释掉哪个命令没有区别 - 绝对路径有效,相对路径无效。

最佳答案

试试这个,它会包含本地存储库中的所有 JAR,因此您不必每次都指定它:

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

此外,您应该知道,通过

引用文件时
files("relative/path/to/a.jar")

路径是相对于此代码段所在的构建脚本进行评估的。因此,当您的 build.gradle 文件位于 /a/project/build.gradle 时,则jar 应该在 /a/project/relative/path/to/a.jar 中。在多项目 gradle 构建中,您可以将 jar 放在相对于根项目的文件夹中,并通过以下方式在所有子项目中引用它

rootProject.files("relative/to/root/a.jar")

因此考虑到这一点并重新检查您的 gradle 设置是否正确。

关于java - Gradle绝对/相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32079022/

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