Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java libgdx--Gdx.files.internal()--&燃气轮机;找不到文件_Java_Eclipse_Audio_Libgdx_Desktop - Fatal编程技术网

Java libgdx--Gdx.files.internal()--&燃气轮机;找不到文件

Java libgdx--Gdx.files.internal()--&燃气轮机;找不到文件,java,eclipse,audio,libgdx,desktop,Java,Eclipse,Audio,Libgdx,Desktop,我在使用libgdx中的Gdx.files.internal()时遇到问题; 似乎每次我将其作为桌面应用程序运行时,都会出现以下主要错误: 原因:com.badlogic.gdx.utils.GdxRuntimeException:未找到文件: \data\sounds\music\mainmusic.mp3(内部)位于 com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)位于 com.badlogic.gdx.backends.

我在使用libgdx中的Gdx.files.internal()时遇到问题; 似乎每次我将其作为桌面应用程序运行时,都会出现以下主要错误:

原因:com.badlogic.gdx.utils.GdxRuntimeException:未找到文件: \data\sounds\music\mainmusic.mp3(内部)位于 com.badlogic.gdx.files.FileHandle.read(FileHandle.java:136)位于 com.badlogic.gdx.backends.lwjgl.audio.Mp3$Music.(Mp3.java:42) ... 10多

我在这件事上读了5条不同的线索,其中一条似乎是最有可能出现的问题,所以我试着

  • 在“资源”下创建数据文件夹
  • 刷新eclipse浏览器
  • 项目>清洁
  • 在bin(核心)中手动创建资产/数据文件夹
  • 三重检查文件路径
  • 重新启动IDE
  • 我的完整路径是 /Flipcrew Legends desktop/assets/data/sounds/music/mainmusic.mp3

    公共类SplashScreen实现Screen{

    final FlipcrewLegends game;
    
    Texture splashTexture;
    Sprite splashSprite;
    SpriteBatch batch;
    TweenManager manager;
    Music introMusic;
    
    public SplashScreen(FlipcrewLegends game) {
        this.game = game;
    
        introMusic = Gdx.audio.newMusic(Gdx.files.internal("data/sounds/music/mainmusic.mp3"));
        introMusic.setLooping(true);
    
    }
    
    然而,这似乎起了作用

    路径:/Flipcrew Legends desktop/assets/data/images/main/splash.png

    //类的其余部分被省略b/c它似乎没有必要(如果需要,我可以添加它)

    //不幸的是,Gdx.audio.newMusic似乎没有直接的字符串路径方法,所以我无法尝试

    其他信息: ->我尝试从core复制桌面文件夹中的assets文件夹,但没有成功(之后删除) ->一个帖子说libgdx通常从android文件夹中获取数据,然后将其应用到桌面(不幸的是,我开始只使用桌面,没有android),但我猜libgdx从那篇文章的最后一天起每晚都在更新,也许已经添加了替代方案

    编辑:

  • 刚刚将资产/数据/等…还原为资产/等。。。。。 即使是
    新纹理(路径);
    也会出现相同的错误-仍然不起作用…上面重试的方法在发布后将重新启动计算机,可能是编译问题

  • 重启电脑,没什么区别

  • 通过进入project->Clean尝试“清理”您的项目。也可以通过右键单击并使用Gradle->Refresh All尝试“刷新”您的libGDX桌面文件夹


    libGDX使用链接文件夹。您只需要将文件复制到您的一个资产文件夹中(在eclipse中执行此操作,而不是在文件资源管理器中)

    对我有效的是,我必须进入资产->构建路径->配置包含/排除。我必须将所有需要的文件夹和文件添加到包含部分。

    答案是针对LibGDX之外的,因为有人已经回答了最初的问题。答案可能有助于处理LibGDX之外的文件

    假设

    软件包存在…苹果、橘子、葡萄。正在尝试使用相对路径

  • Apple包含文件Temp1.txt
  • Orange包含文件Temp2.txt
  • Grape包含文件Temp3.txt
  • 以…的格式访问文件

    • “/Apple/Temp1.txt”
    • “/Orange/Temp2.txt”
    • “/Grape/Temp3.txt”

      • 我在Android Studio上也遇到了同样的问题。我为每个资产应用了直接路径

        “C:\Users\Admin\Desktop\test1\android\assets/starfish.png”


        我为我的游戏实现了i18n,无法加载特定的文件。这种方式看起来很奇怪,但实际上很有效。这很奇怪,但开头没有“/”
        FileHandle.list()
        包含了一些很久以前删除的文件,可能是从某个缓存中删除的,重建项目或使缓存无效没有帮助-但仅在某些设备上。然后,再次添加/可能只是使其他缓存无效
        @Override
        public void show() {
        
            splashTexture = new Texture("data/images/main/splash.png");
            splashTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
        
            splashSprite = new Sprite(splashTexture);
            splashSprite.setColor(1, 1, 1, 0);
        }
        
        enter public void create()
            {
                batch = new SpriteBatch();
                turtleTexture = new Texture( Gdx.files.internal("C:\\Users\\Admin\\Desktop\\test1\\android\\assets/starfish.png") );
                turtleX = 20;
                turtleY = 20;
                turtleRectangle = new Rectangle( turtleX, turtleY,
                        turtleTexture.getWidth(), turtleTexture.getHeight() );
                starfishTexture = new Texture( Gdx.files.internal("C:\\Users\\Admin\\Desktop\\test1\\android\\assets/starfish.png") );
                starfishX = 380;
                starfishY = 380;
                starfishRectangle = new Rectangle( starfishX, starfishY,
                        starfishTexture.getWidth(), starfishTexture.getHeight() );
                oceanTexture = new Texture( Gdx.files.internal("C:\\Users\\Admin\\Desktop\\test1\\android\\assets/water.jpg") );
                winMessageTexture = new Texture( Gdx.files.internal("C:\\Users\\Admin\\Desktop\\test1\\android\\assets/you-win.png") );
                win = false;
            }