gradle依赖如何找到包?

时间:2015-06-26 02:33:25

标签: java android gradle

我在我的gradle文件中有一个android studio应用程序...`

apply plugin: 'com.android.application'

def ftcLibLocation = "../../../android/ftc_lib/ftc_app/FtcRobotController/libs"

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "teamXXXX.testbot"
        minSdkVersion 19
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile files('${ftcLibLocation}/FtcRobotController-debug.jar')
    compile files('${ftcLibLocation}/FtcCommon-release.jar')
    compile files('${ftcLibLocation}/ModernRobotics-release.jar')
    compile files('${ftcLibLocation}/RobotCore-release.jar')
    compile files('${ftcLibLocation}/WirelessP2p-release.jar')
    compile files('${ftcLibLocation}/Analytics-release.jar')
    compile files('${ftcLibLocation}/d2xx.jar')
}

然而当我编译程序时,gradle / android studio抱怨它找不到我知道的那些jar包。

Error:(3, 47) error: package com.qualcomm.robotcore.eventloop.opmode does not exist

该软件包位于$ {ftcLibLocation} /RobotCore-release.jar中为什么不是构建定位它?

2 个答案:

答案 0 :(得分:1)

创建一个libs文件夹(与src目录相邻)并将所有jar包含在该目录中。

然后在build.gradle文件中,使用:

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

您不必单独编译每个依赖项。

答案 1 :(得分:0)

有几个原因可能会发生这种情况。可能最有用的启动工具是gradle dependencies命令。它会告诉你可能会让你感到惊讶的依赖关系。更多关于它的信息:

What is the Gradle artifact dependency graph command?

  1. 您的路径变量ftcLibLocation未在运行gradle的环境中正确设置。通常gradle将在构建期间显示完整路径,或者您可以显示或记录它:
  2. https://discuss.gradle.org/t/accessing-the-buildscript-classpath/5297

    1. jar文件已更改,但gradle缓存不知道。我有时碰到这个,我得去:

      {userhome}\.gradle\.caches

      在那里你会发现很多缓存的文件夹 对图书馆的引用。那些图书馆通常是遥远的,但我 已经看到缓存本地库的问题。你可以删除它 目录 - 或找到有问题的部分。删除会 导致所有依赖项再次下载,可能需要一段时间。

    2. 另一个潜在的问题是Android Studio和gradle。有时插件无法正确更新。重新启动Android Studio,然后重试。