当前位置: 首页 > 知识库问答 >
问题:

智能、Android和格拉德尔

仰经武
2023-03-14

我正在尝试让我现有的Android项目与渐变和智能J 12一起工作。以前,我曾让它与maven一起工作,但这似乎不像gradle那样灵活,而且据我所知,我需要的子文件夹更少。

我的Android项目分为干净的java库(:core)和实际的应用程序(:Android)。这两个项目都在我的主项目文件夹中。

~-+MainProject
  |--+core
  |  L--build.gradle
  |--+android
  |  L--build.gradle
  |--build.gradle
  L--settings.gradle 

我认为,用这个实现gradle工作的理想解决方案是将(:core)和(:android)项目视为嵌套项目,这意味着我可以简单地在MainProject源文件夹中使用cmd来启动gradle任务。

然而,我遇到了不同的问题:

    < li>Gradle依赖项仅包含在核心项目中 < ul > < li >这意味着instrumentatetionTest和主项目文件中没有任何目录被正确设置为源/测试目录 < li>IntelliJ不解析我在gradle中作为依赖项添加的任何类(AndroidSDK、junit、mockito,以及来自:core项目的类) < ul > < li >尝试使用插件“idea ”,但要么是我用错了,要么是它没有解决问题
  • 必须与我添加的junit: 4.11和mockito-core: 1.9.5有关
  • 我尝试的:
    • 删除依赖项-

    这是*。梯度配置

    主项目: -- 设置.gradle

    include ':core', ':android'
    

    --内置梯度

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.6.+'
        }
    }
    
    subprojects {
        repositories {
            mavenLocal()
            maven { url "http://repo.maven.apache.org/maven2" }
        }
    }
    

    :核心 -- 构建渐变

    apply plugin: 'java'
    
    dependencies {
        testCompile 'junit:junit:4.11'
        testCompile 'org.mockito:mockito-core:1.9.5'
    }
    

    :Android

    apply plugin: 'android'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
         compile project(":core")
    
         compile 'com.google.android:android:4.1.1.4'
    
         instrumentTestCompile 'junit:junit:4.11'
         instrumentTestCompile 'org.mockito:mockito-core:1.9.5'
         instrumentTestCompile 'com.google.dexmaker:dexmaker:1.0'
         instrumentTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'
    
         instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:3.6'
    } 
    
    /* ... androidSettings
    

    我希望有人能帮我

    MFG Dornathal

共有1个答案

诸葛卜霸
2023-03-14

好吧,所以你的想法是对的,但是你还需要做一些改变。

您的根< code>build.gradle文件应该如下所示:

subprojects {
    repositories {
        mavenCentral()
    }
}
  • 如果您使用的是本地安装的存储库,则只需要包含mavenLocal()。大多数人不这样做,并且您的项目中没有任何内容表明您需要一个。
  • mavenCentral()可用于替换您正在使用的maven URL。
  • 我们只需要修改android项目的buildscript,所以我们应该将其本地化为android项目的build.gradle

对于核心项目,你的设置.gradle 和你的构建.gradle 都很好。

然而,您的build.gradle对于android项目,需要一些更改:

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

apply plugin: 'android'

dependencies {
    compile project(":core")

    instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:3.6'
}
  • 通过包含Android插件,我们直接链接到已安装的SDK。这意味着我们不再需要包含Android操作系统的依赖关系:编译“Android:4.1.1.4”
  • 我们不需要包含 junit。它由 SDK 提供,因此我们将使用它。需要注意的一点是,开发工具包仅包含 J 单元 3。
  • 我们不需要包括模拟dexmaker,除非我们实际上将其用于Android测试。如果它仅用于java库上的测试,我们在这里不需要它。

回答您的问题:

    < li >我不知道你在这里问什么。它可能会有所帮助,如果你应该你的项目结构,包括你的文件目录等。 < li >你的预感是正确的。提供测试匹配器的Hamcrest在1.1和1.3版本之间对他们的API做了一个突破性的改变。JUnit 4.11依赖于Hamcrest 1.3。然而,Mockito 1.9.5依赖于Hamcrest 1.1。因此,当两者都包括在内时,1.3会覆盖1.1

最后一点。Intellij 12不能处理分级多项目构建。你需要切换到Android Studio或Intellij 13。

 类似资料:
  • 我正在尝试连接到本地MongoDB实例(版本3.2)。我已经在构建中指定了依赖项。格拉德尔是这样的: 依赖项{编译'org.mongodb: mongoDB驱动程序: 3.3.0'} 我有一个简单的App.java文件,其中包含以下代码(见下文)。构建/编译Java步骤都运行良好,没有错误。但是当我运行代码时,我得到:“线程”主要“java.lang.noClassDefFoundEror中的异常

  • 我试图用我的gradle项目运行junit测试,但不管是什么测试,它们都会抛出以下堆栈跟踪 我已经看到了一些建议的解决方案,但似乎没有一个奏效。当我在ant中运行它们时,我的测试运行良好。我已经确保xerces使用的是最新版本,我还添加了建议的版本 对于JVM,但似乎什么都不起作用。 任何建议都将不胜感激。我可以根据要求提供更多信息。 **更新** 做了以下更改- 但现在的结果如图所示 **更新2

  • 我正试图用quarkus运行简单的“入门”型gradle项目,每次我的单元测试都会因为这个错误而失败 按照这里的指示https://quarkus.io/guides/gradle-tooling对正在发生的事情有什么建议或想法吗?

  • 错误:找不到方法com。Android建筑格拉德尔。api。BaseVariant。getOutputs()Ljava/util/List;'。此意外错误的可能原因包括: Gradle的依赖项缓存可能已损坏(这有时会在网络连接超时后发生。)重新下载依赖项和同步项目(需要网络) Gradle构建进程(守护进程)的状态可能已损坏。停止所有Gradle守护进程可以解决此问题。停止Gradle生成过程(需

  • 谷歌刚刚开源了它的构建工具Bazel。这个工具和Gradle有什么不同?它能做什么是Gradle做不到的,它做什么更好,Gradle做什么更好?

  • 我通过VS Code创建了一个新的flutter项目。但是我不知道为什么我在运行时会有这个错误 失败:构建失败,有一个异常。 > 错误:配置根项目“android”时出现问题。 无法解析配置“:classpath”的所有项目。找不到com。Android工具。建造:梯度:3.6。2.在以下位置搜索: https://dl.google.com/dl/android/maven2/com/andro