maven - Android Gradle 依赖项 - 只有 Maven?

标签 maven dependencies gradle android-studio

我正在尝试了解来自 Eclipse 和 Ant 的 Android Studio/Gradle 构建系统。特别是,我不明白 dependencies阻止我的build.gradle文件有效。

我当前的项目具有以下结构:

Project Structure

在我的项目中,我同时使用了 android 支持库 (v4) 和 jxl 电子表格库。我的 build.gradle (子模块内的那个,不是根级别的)当前看起来像这样:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
    }
    buildTypes {
        release {
            runProguard true
            proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
        }
    }
    productFlavors {
        defaultFlavor {
            proguardFile 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'net.sourceforge.jexcelapi:jxl:2.6.+'
    compile 'com.android.support:support-v4:13.0.+'

    //compile fileTree(dir: 'libs', include: '*.jar')
}

在倒数第二行,您可以看到我尝试使用 android-support-v4.jar 的本地副本和 jxl.jar .我也尝试过使用这些线条
compile files('libs/android-support-v4.jar')
compile files('libs/jxl.jar')

但是,每当我尝试使用本地 .jar 文件时,我的构建都会失败,说找不到 Android 支持和 jxl 库。我看过很多帖子说你可以像这样简单地使用本地 .jar,但是我无法让它工作。如果可能,我希望能够使用本地存储的 .jar 文件,以便在 Maven 不可用时可以离线工作。

谁能告诉我为什么使用本地 .jar 文件不起作用?

编辑:我还尝试重新启动 Android Studio IDE,并在添加本地 jar 依赖行后清理和重新构建我的项目。

最佳答案

它没有找到 libs 目录,因为它需要位于模块根目录而不是 src/main 中。 build.gradle 中的路径与 build.gradle 文件的位置相关,该文件位于模块根目录中。

对于 Android 支持库,我建议使用 Maven 依赖项(例如 compile 'com.android.support:support-v4:13.0.+' )而不是包含 jar 文件。借助支持库,Android Gradle 插件实际上会在您的 SDK 中查找它,而不是通过网络查找它;您必须通过 SDK 管理器安装支持存储库。这实际上有点令人困惑,并且因为没有很好的文档记录而绊倒了很多用户。但是,如果您以这种方式访问​​它而不是仅包含 JAR,那么构建系统可以更聪明地避免尝试包含它的重复副本,如果您包含依赖它的其他库项目,则会导致错误。

关于maven - Android Gradle 依赖项 - 只有 Maven?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20183340/

相关文章:

gradle - Android Studio Gradle编译错误

java - 我可以使用 checkstyle、maven-checkstyle-plugin 和 google_checks.xml 启用抑制吗?

gradle - Gradle Composite Build,无法解决传递依赖项

eclipse - Eclipse在调试时未选择Maven附加源

java - Gradle 构建失败

python - 升级 Django 版本 : Best Practice

java - 在Windows 10上为Android Studio使用Gradle

android - 操作栏不显示菜单项

spring - org.springframework.web.servlet.DispatcherServlet 未在 VMWare vFabric tc Server 和 maven 中找到

java - 无法部署爆炸的 Artifact