我在我的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中为什么不是构建定位它?
答案 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?
ftcLibLocation
未在运行gradle的环境中正确设置。通常gradle将在构建期间显示完整路径,或者您可以显示或记录它:https://discuss.gradle.org/t/accessing-the-buildscript-classpath/5297
jar文件已更改,但gradle缓存不知道。我有时碰到这个,我得去:
{userhome}\.gradle\.caches
在那里你会发现很多缓存的文件夹 对图书馆的引用。那些图书馆通常是遥远的,但我 已经看到缓存本地库的问题。你可以删除它 目录 - 或找到有问题的部分。删除会 导致所有依赖项再次下载,可能需要一段时间。
另一个潜在的问题是Android Studio和gradle。有时插件无法正确更新。重新启动Android Studio,然后重试。