【问题标题】:Java compile error: package does not existJava编译错误:包不存在
【发布时间】:2018-08-22 16:35:37
【问题描述】:

在我的工作区 (wsPrivate) 我有 3 个 gradle 项目。

  • 刽子手
  • 像素视图
  • 报告

Projects PixelView 和 Reports 编译良好。然而,Hangman 使用了这两个项目,而且有些项目在编译时找不到包。
请参阅下面的错误(在编译 Hangman 时弹出):

D:\_wsGitlab\wsPrivate\Hangman\src\main\java\game\core\Game.java:10: error: package hangman does not exist
import hangman.Messages;
              ^
D:\_wsGitlab\wsPrivate\Hangman\src\main\java\game\core\Game.java:13: error: package viewer does not exist
import viewer.Box;
             ^
D:\_wsGitlab\wsPrivate\Hangman\src\main\java\game\core\Game.java:14: error: package viewer.figures.boxes does not exist
import viewer.figures.boxes.Borders;

我已经阅读了几乎所有我能找到的关于类路径以及如何解决这个[在我看来]“范围问题”的信息,我也尝试了多种解决方案,但我认为我正在让它变得更糟。 该程序无需在 Eclipse 中编译就可以正常工作,所以我假设代码是正确的。

我现在在这上面停留了 3 天,所以如果有人能向我解释我在哪里行驶,那就太好了。如果需要更多信息:请询问;)

所以这基本上是我目前所拥有的:

我的包布局和添加的库:

我添加到 Hangman 的自定义库:

项目 Hangman 的构建路径上的项目:

项目Hangman的排序和导出:

引用的其他两个项目(pixelview/reports):

最后但并非最不重要的是我的build.gradle

apply plugin: 'application'

mainClassName = "game.core.Game"

repositories {
    jcenter()
}

dependencies {
    compile 'org.apache.commons:commons-math3:3.6.1'
    implementation 'com.google.guava:guava:23.0'
    testImplementation 'junit:junit:4.12'
}

jar {
    baseName = 'HangmanGame'
    version = '2.00.0'
    manifest {
        attributes(
        'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
        'Main-Class': 'game.core.Game'
        )
    }
}

【问题讨论】:

  • 我在您发布的任何图片中都没有看到 hangman 包。
  • [UPDATE] 我已经用 Reports 的包布局(包含刽子手)和 PixelView 的包布局更新了描述。
  • 澄清一下,Eclipse 中的项目可以正确编译和运行,而 Gradle 会出现编译错误,对吧?
  • @thokuest "PixelView" 和 "Reports" 编译得很好,因此 gradle 没有给我 gradle 特定的错误。 (放入 gradle 文件中的所有内容都没有这样做)。我总是使用 gradle 项目,但我不必导入任何 mavenCentral 导入或其他任何东西(仅适用于 junit 和其他东西),问题是:Hangman 需要 PixelView 和 Reports,但不知何故 Hangman 无法访问它们

标签: java gradle compiler-errors


【解决方案1】:

您说您有三个项目 - 我将其解释为一个带有三个独立 Gradle 子项目的 Gradle 项目。

如果是这样,您需要一个位于根级别的settings.gradle 文件,其内容类似于

include 'Hangman', 'PixelView', 'Reports'

您可以在 Gradle 文档中阅读有关 authoring multiproject Gradle builds 的更多信息。

【讨论】:

【解决方案2】:

我在docker uBuntu(未安装Android Studio)下遇到了同样的问题,所有设置如上所示,仍然出现同样的错误。

然后我发现项目根目录下没有local.properties文件,从另一个项目复制local.properties并正确设置ndk和sdk路径后,多个项目构建成功,我的ndk/sdk路径可能与你的不同。

这个项目也可以在安装了android studio的其他机器上成功构建,即使缺少以下文件:local.properties(将在第一次构建后出现)、gradlew、gradlew.bat、gradle-wrapper.jar

ndk.dir=/home/username/Android/Sdk/ndk-bundle
sdk.dir=/home/username/Android/Sdk

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 2023-03-08
    • 1970-01-01
    • 2018-04-24
    • 2021-12-07
    • 2012-02-29
    • 2015-05-07
    • 2017-08-30
    相关资源
    最近更新 更多