返回

Android Studio 运行 java main 报错:无法创建任务 - 深度解析

Android

错误原因:
该错误通常是由 Android Studio 中缺少名为“main”的 SourceSet 引起的。SourceSet 是一个 Gradle 概念,用于定义构建过程中的源代码和资源集合。在 Android 项目中,通常会有两个 SourceSet:“main”和“test”。“main” SourceSet 包含应用程序的主代码和资源,而“test” SourceSet 包含测试代码和资源。

解决方案:
要解决该错误,请按照以下步骤操作:

  1. 打开 Android Studio 项目的根目录。
  2. 找到 .idea/gradle.xml 文件。
  3. 在该文件中找到如下代码块:
<module name="app" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="android-gradle" name="Android-Gradle">
      <configuration>
        <option name="GRADLE_PROJECT_PATH" value=":app" />
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
    <exclude-output />
    <content url="file://$MODULE_DIR$/src/main/java">
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
    </content>
    <content url="file://$MODULE_DIR$/src/main/res">
      <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>
  1. <content url="file://$MODULE_DIR$/src/main/java"> 代码块后添加如下代码:
    <content url="file://$MODULE_DIR$/src/test/java">
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
    </content>
  1. 保存 .idea/gradle.xml 文件。
  2. 重新启动 Android Studio。

添加 “test” SourceSet 后,Android Studio 将能够找到它,并且错误消息将消失。

其他可能的解决方案:
如果上述解决方案没有解决该问题,您可以尝试以下操作:

  • 确保您的 Android Studio 是最新版本。
  • 尝试使用不同的 JDK 版本。
  • 尝试清理并重新构建您的项目。
  • 尝试创建一个新的 Android 项目,并将您的代码复制到该项目中。

希望这些解决方案能够帮助您解决“Could not create task ':app:Test.main()'.”的错误。如果您还有任何问题,请随时提问。