我正在尝试从VCS导入项目(好吧,我实际上是第一次这样做)这是我的(导入)项目的结构:
顺便说一句。在多次尝试更改这些目录的属性(在其上下文菜单中)之后,将显示此屏幕。
在这些源文件中,我有以下错误:
有一次它没有反对badugi.client
,但只在badugi.server
报告了此错误。我完全不知道它是如何运作的......
同样目录中的类也看不到对方。
这是来自ClientWorker
类的代码,位于Server
所在目录中(如第一张图片所示),因此它应该知道Server
是什么。< / p>
我很确定这段代码在我朋友的IDE中运行良好。如何配置IntelliJ以使其工作?
答案 0 :(得分:48)
从目录结构来看,你有两个包客户端和服务器,但代码需要包badugi.client和badugi.server。
以下是解决问题的方法:
package badugi.server
)或
答案 1 :(得分:32)
我遇到了同样的问题,并通过修改项目的.iml文件修复了它:
自:
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/wrong/entry/here" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
要:
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
导入此项目时,软件包文件夹被指定为根源目录。
答案 2 :(得分:12)
我也看过几次这个错误,我总是能够通过正确识别项目的模块设置来解决它。在IntelliJ中,右键单击顶级项目 - &gt; “打开模块设置”。这应该打开一个窗口,其中整个项目结构和内容被标识为“源文件夹”,“测试源文件夹”等。确保这些设置正确。对于“源文件夹”,确保该文件夹是您的src /或src / java(或您的源语言),视情况而定
答案 3 :(得分:6)
将此添加到pom.xml
(project
标记内)
<build>
<sourceDirectory>src/main/java</sourceDirectory>
</build>
src/main/java
是您要设置的源文件夹。如果您的pom.xml
文件中已有此行,请检查它是否正确。
答案 4 :(得分:4)
你应该在模块部分的项目结构(Ctrl + Alt + Shift + s)中声明你的文件夹中哪些是源包(蓝色),哪些是测试......
答案 5 :(得分:1)
由于损坏或可能过时的intellij文件,我遇到了同样的问题。在更新到14.0.2之前,我有一个完美的工作项目,其中包含正确命名的包和文件层次结构。
更新后,maven编译工作顺利,但Intellij报告了特定包装上的错误(其他具有相似特性的包装没有受到影响)。
我没有打算进一步调查,但我删除了我的.iml文件和.idea文件夹,无效的缓存,重新启动了IDE,并重新打开了项目,依赖于我的maven配置。
注意:这样可以有效删除运行和调试配置!
也许有人了解intellij工作区文件可以对此发表评论吗?
对于那些进一步搜索的人的另一个评论:SC管理项目中的重构可能会留下灰尘 - 我碰巧有一个“旧”文件夹,它重复了当前的包结构。如果.iml或.idea文件对这些包有任何引用,那么intellij可能会与旧包的引用混淆。祝好运,StackExchangers同事。
更新:我删除了引用的maven项目中的一些文件并返回了怪癖。所以,我的帖子绝不是最后的答案。
答案 6 :(得分:0)
我只是在与类似的问题作斗争。我解决它的方法是设置Intellij模块的根源文件以匹配原始项目根文件夹。然后我需要在项目导航面板中标记一些文件夹为Excluded(不应该在新项目中使用的那个,对我来说它是在Android下使用的部分)。这就是全部。
答案 7 :(得分:0)
也许某人遇到了我对Scala项目的类似警告。
包名称与目录结构不对应,这可能会导致解析此文件中的类时出现问题 检查包含与包结构不对应的包语句的文件。
该文件位于正确的位置,因此IDE提供的帮助程序解决方案无效 移动文件说文件已经存在(这是真的),重命名包实际上会将它移动到不正确的包。
问题是如果你有Scala对象,你必须确保文件中的第一个对象与文件名同名,所以解决办法就是移动文件中的对象。
答案 8 :(得分:0)
对于遵循docs软件包约定的使用Kotlin的用户:
在纯Kotlin项目中,推荐的目录结构应遵循包结构,并省略公共根包(例如,如果项目中的所有代码都在“ org.example.kotlin”包及其子包中,则包含“ org.example.kotlin”包应直接放在源根目录下,“ org.example.kotlin.foo.bar”中的文件应位于源根目录的“ foo / bar”子目录中。>
IntelliJ doesn't support this yet。您唯一可以做的就是禁用此警告,并接受IDE在更改文件夹/文件结构时不会帮助您进行重构。
答案 9 :(得分:0)
我在src文件夹下创建了一个程序包,即可解决此问题。
答案 10 :(得分:0)
这很棘手。就我而言,文件夹结构为:
com / appName / rateUS / models / FileName.java
我在文件FileName.java中指定的程序包名称为:
package com.appName.rateUs.models;
请注意软件包名称之间的细微差别:应该是 rateUS ,而不是rateU s
希望这对某人有帮助!
答案 11 :(得分:0)
我遇到了类似的错误,就我而言,修复程序是从项目名称中删除了“-”字符。我使用了 my-app
MyApp
答案 12 :(得分:0)
对我来说,问题是我已经将一个包重构为不同的名称,并且出于某种原因 IntelliJ 恢复了它(即使包名称,就 git 跟踪而言,并没有改变)。我再次将其重构为新名称并解决了问题。
答案 13 :(得分:0)
只需创建另一个 Package
并将所有文件夹移动到它的 !所有错误都将删除
答案 14 :(得分:0)
最简单的解决方案就是重命名每个类中的第一行。
例如
IntelliJ 告诉我们包名应该是“module09.nationalratswahlen”
当前名称是“oop2.module09.nationalratswahlen”
只需按 Control-Shift-R 并在所有文件中将“oop2.module09”替换为“module09”。但是,通常您应该通过 File > New > Project from Version control 克隆一个存储库。那么你就可以避免这些问题。
答案 15 :(得分:-3)
可以告诉Intellij忽略此错误。
档案&gt;设置&gt;编辑&gt;检查,然后在右侧搜索“错误的包声明”(Under Java,Probable Bugs)并取消选中它。