我有以下问题。当我想在我的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:错误:包com.pushlink.android不存在导入com.pushlink.android.pushlink;
注意:某些输入文件使用或重写了一个不推荐使用的API。注意:有关详细信息,请使用-xlint:deprecation重新编译。4个错误
失败
失败:生成失败,出现异常。
>
错误:任务“:app:CompileDebugJava”执行失败。
编译失败;有关详细信息,请参阅编译器错误输出。
尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或>--debug选项运行以获得更多日志输出。
生成失败
总时间:6.543秒
如果我将绝对路径添加到Jar中,项目就会编译,所有的工作都可以找到:
compile files('C:/Users/Kai/AndroidStudioProjects/ProjectA/libs/PushLinkAndroid-5.3.0.jar')
看起来路径有问题,但当绝对路径正常工作时,怎么会这样呢?
编辑:Build.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”中。我使用哪个命令或注释掉哪个命令并不重要-绝对路径有效,相对路径无效。
老问题,但也许能帮上忙。我有同样的问题,我有两个库在项目根文件夹,它不能工作与相对路径。如果库位于项目的根文件夹中,则在相对路径之前添加../。
implementation fileTree(dir: 'libs', include: ['*.jar'])
...
implementation files('../library_name/libs/some.jar')
如果调用URL方案路径,可以使用以下示例:
def path = "file://${projectDir}/ojdbc6.jar"
试试看,它将包括本地存储库中的所有JAR,这样您就不必每次都指定它:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
此外,您应该知道,当通过
files("relative/path/to/a.jar")
路径是相对于此代码段所在的buildscript计算的。因此,当build.gradle
文件位于/a/project/build.gradle
中时,那么jar应该位于/a/project/relative/path/to/a.jar
中。在多项目分级构建中,您可以将jar放在与根项目相关的文件夹中,并通过以下方式在所有子项目中引用它
rootProject.files("relative/to/root/a.jar")
因此,考虑到这一点,并重新检查你的等级设置是否正确。
问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置
主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字
在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《 Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。 指明一个文件存放的位置,有 2 种方法,分别是使用 绝对路径和 相对路径。 我们知道,Linux 系统中所有的文件(目录)都被组织成以根
本文向大家介绍java区分绝对路径和相对路径的方法,包括了java区分绝对路径和相对路径的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java区分绝对路径和相对路径的方法。分享给大家供大家参考。具体分析如下: 这里要区分的是目录路径 如: /opt/deve/tomcat/bin c:\deve\tomcat\bin 都是绝对目录路径 bin bin/data bin\data 都
问题内容: 我有文件A的绝对路径。 我有一个从文件A的目录到文件B的相对路径。此路径可以并且将使用“ ..”以任意复杂的方式向上移动目录结构。 范例A: 示例B: 我如何结合这两者以获得 最简单的 绝对路径到文件B? 问题答案: 如果我的问题正确,那么您可以执行以下操作:
问题内容: 我正在编写一个程序,其中的一个组件必须能够采用给定的路径(例如或)和基于该位置的相对路径(例如或或)并产生绝对路径由相对路径暗示。考虑以下目录树。 该文件包含一个链接,如。该计划获得通过或,并将其与结合来获得。 同样,文件具有链接,程序需要从该链接返回。有合理的方法做到这一点吗? 谢谢。:) 编辑: 谢谢斯蒂芬·温伯格!对于未来的每个人,这是我使用的代码。 问题答案: 在与使用时应该做