bounty还有4天到期。回答此问题可获得+100声望奖励。Bussiere正在寻找一个答案从一个有信誉的来源。
我有以下问题:
如果我使用LIBGDX项目设置(最新版本1.11.0)创建一个新项目,然后在Android Studio中打开它,我可以毫无问题地升级到Gradle 7.4.2。然而,当升级到Gradle 8.0.1时,我总是得到相同的错误:“无法加载类'org.gradle.API.internal.artifacts.dsl.dependencies.DependencyFactory$ClassPathNotation'。”“org/gradle/api/internal/artifacts/dsl/dependencies/DependencyFactory$ClassPathNotation”
它一定与HTML有关,因为如果我创建一个没有HTML的LIBGDX设置,我可以毫无问题地更新到Gradle 8.0.1。没有HTML一切都很好。
Android Studio Flamingo Patch 2,LIBGDX Setup Version 1.11.0
会很感激你的帮助。。
1条答案
按热度按时间wnavrhmk1#
让我们看看错误消息。
关于Upgrading your build from Gradle 7.x to 8.0的指南说Internal DependencyFactory已重命名。
内部的
org.gradle.api.internal.artifacts.dsl.dependencies.DependencyFactory
类型被重命名为org.gradle.api.internal.artifacts.dsl.dependencies.DependencyFactoryInternal
。作为内部类型,它不应该被使用,但出于兼容性原因,内部ClassPathNotation
类型仍然可用。此类型名称已弃用,将在Gradle 8.0中删除。此方法的公共API位于DependencyHandler
上,localGroovy()
等方法提供了相同的功能。这完全符合您在更新到Gradle 8时收到的错误消息。这些内部Gradle API主要与Gradle插件的开发人员相关。这就是为什么上述Gradle升级指南建议在第二步中
更新您的插件。
一些插件将与这个新版本的Gradle中断,例如,因为它们使用已删除或更改的内部API。上一步将通过在插件尝试使用API的弃用部分时发出弃用警告来帮助您识别潜在问题。
现在,您在libGDX的HTML设置中遇到了问题,但在非HTML设置中没有问题,因为使用了不同的插件。那些非HTML插件,如Android Gradle插件,要么不受影响,要么已及时更新。如果我没有弄错的话,在libGDX HTML项目中必须应用两个插件--WAR plugin和GWT plugin。第一个是Gradle Core插件,我怀疑它不是最新的。后者是自定义的,有多种实现可供选择,如您所见。
所以--确保你所有的插件都是最新的。如果这没有帮助,并且您需要libGDX的HTML设置,那么您现在可能必须坚持使用Gradle 7。