更新Gradle(Android Studio 3.0)后,LibGdx无法正常工作 [英] LibGdx doesn't working after updating Gradle (Android Studio 3.0)

查看:484
本文介绍了更新Gradle(Android Studio 3.0)后,LibGdx无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近更新了android studio和gradle到版本3.0.0,按照这个链接中的说明 https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html



执行此操作后,libgdx桌面项目无法正常工作。



它给了我这个错误

  java.lang.NoClassDefFoundError:com / badlogic / gdx / ApplicationListener $ b $ java.util.Class.getDeclaredMethods0(Native Method)$ b $ at java.lang .Class.privateGetDeclaredMethods(Class.java:2701)$ b $在java.lang.Class.privateGetMethodRecursive(Class.java:3048)$ b $在java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain( LauncherHelper.java:526)
导致:java.lang.ClassNotFoundException:com.badlogic.gdx.ApplicationListener $ b $在java.net.URLClassLoader.findClass(URLClassLoader.java:381)
在java.lang.ClassLoader.loadClass(ClassLoader .java:424)sun.misc.Launcher
$ java.util.ClassLoader.loadClass(ClassLoader.java:357)

。 .. 7 more
错误:发生JNI错误,请检查您的安装并重试
线程main中的异常

这里是build.gradle文件

  buildscript {
repositories {
mavenLocal()
mavenCentral()
maven {urlhttps://oss.sonatype.org/content/repositories/snapshots/}
jcenter()
google()
}
依赖关系{
classpath'com.android.tools.build:gradle:3.0.0'
}

我只添加了 google()来储存并将gradle版本编辑为 3.0.0



gradle-wrapper.properties 我添加了这一行

  distributionUrl = https\://services.gradle.org/distributions/ gradle-4.1-all.zip 


解决方案

Android Studio 3.0 使用 gradle-4.1 com.android.tools.build:gradle:3.0.0



Gradle 4.1 目前还不支持LibGDX,有一个开放的 issue for same。

目前使用已弃用的 jetty 插件的 html模块,它在 Gradle 4.1 版本中被删除。



然而,使用终端,您可以运行桌面模块,我没有在Windows上测试过,但在Mac上它工作正常。

  ./ gradlew桌面:运行






F或者现在您可以在Android Studio 3.0中使用较低版本的 Gradle Andoid-gradle-plugin ,然后等待问题发生




  • 将Gradle版本从4.1降级到3.3



    在你的项目中找到gradle文件夹,打开 gradle-wrapper.properties ,然后改变distributionUrl为3.3

      distributionUrl = https\://services.gradle.org/distributions/gradle-3.3-all.zip 


  • 将Android-gradle-plugin版本从3.0.0降级到2.3.3



    打开root build。 gradle 文件并在buildscript和
    中更改版本中找到工件

      classpath'com.android .tools.build:gradle:2.3.3'


  • 评论/删除 google()从根目录 build.gradle 文件

  • 中的回购列表

I have recently updated android studio and gradle to the version 3.0.0 following instructions in this link https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html

After doing this libgdx desktop project doesn't work.

It give me this error

java.lang.NoClassDefFoundError: com/badlogic/gdx/ApplicationListener
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.ApplicationListener
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 7 more
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main"

Here is build.gradle file

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }

I only added google() to repositories and edit gradle version to 3.0.0

In gradle-wrapper.properties I added this line

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

解决方案

Android Studio 3.0 using gradle-4.1 and com.android.tools.build:gradle:3.0.0

Gradle 4.1 is not supported yet in LibGDX, there is an open issue for the same.

Currently html module using deprecated jetty plugin which is removed in Gradle 4.1 version.

However using Terminal you can run desktop module, I've not tested on windows but on Mac it's working fine.

./gradlew desktop:run


For now you can use lower version of Gradle and Andoid-gradle-plugin in Android Studio 3.0 and wait for issue to be fixed.

  • Downgrade Gradle version from 4.1 to 3.3

    Find gradle folder inside your project, Open gradle-wrapper.properties and change distributionUrl for 3.3

    distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
    

  • Downgrade Android-gradle-plugin version from 3.0.0 to 2.3.3

    Open root build.gradle file and find artifact in buildscript and change version

    classpath 'com.android.tools.build:gradle:2.3.3'
    

  • Comment/delete google() from repo list inside root build.gradle file

这篇关于更新Gradle(Android Studio 3.0)后,LibGdx无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆