Скомпилированные сбои .Jar (без java-консоли), но компилируются и запускаются в Eclipse?

Я использую Libgdx для кодирования игры, и он использует такие методы, как Gdx.files.internal("file") для загрузки файлов, это должно работать при экспорте приложения, так как это то, что он должен делать

Некоторые файлы копируются в каталог USER и загружаются оттуда (аудио), это то, что вызывает сбой приложения? Как упоминалось здесь: Java-приложение работает правильно в Eclipse, но не как .jar

Если бы кто-нибудь мог дать мне представление о том, что происходит, это было бы здорово, он также не запускает консоль Java для меня, поэтому я понятия не имею

Скомпилированный файл .jar находится здесь: https://www.dropbox.com/s/rz9v7lkdsj78z20/RUSHmup.jar (также с библиотеками внутри)

Вот код загрузки звука, который, как я ДУМАЮ, вызывает проблему (но все, что я вижу, это то, что должно работать нормально и ДЕЛАЕТ в Eclipse)

if(!Gdx.files.external("test.wav").exists()){
            String f = copySong(FILE);
        }
        if(Gdx.files.external("test.wav").exists()) {
        //  String ss = copySong(FILE);
            String songPath = Gdx.files.getExternalStoragePath() + Gdx.files.external("test.wav").path();
            //System.out.println("B4: " + songPath);
            songPath.replace('\\', '/');
            //System.out.println("AF: " + songPath);
            song = minim.loadFile(songPath,2048);//"C:/users/seantest/test.wav", 2048);

        }

        String external = Gdx.files.getExternalStoragePath();
        external.replace('\\', '/');

        Gdx.files.internal("data/audio/1.wav").copyTo(Gdx.files.external("1.wav"));
        Gdx.files.internal("data/audio/2.wav").copyTo(Gdx.files.external("2.wav"));
        Gdx.files.internal("data/audio/3.wav").copyTo(Gdx.files.external("3.wav"));
        Gdx.files.internal("data/audio/go.wav").copyTo(Gdx.files.external("go.wav"));
        count3 = minim.loadSample(external + "3.wav");
        count2 = minim.loadSample(external + "2.wav");
        count1 = minim.loadSample(external + "1.wav");
        countGo = minim.loadSample(external + "go.wav");

        audioData = new RSAudioData(this);

        if(song!=null){
            System.out.println("Song Info: " );
            System.out.println(song.length() + " " + song.sampleRate() + " " + song.bufferSize());
            beat = new BeatDetect(song.bufferSize(), song.sampleRate());
            beat.setSensitivity(300);  
            bl = new RSMBeatListener(beat, song); 
            fftLog = new FFT(song.bufferSize(), song.sampleRate());
            fftLog.logAverages(22, 3);
            max = new float[fftLog.avgSize()];
              for(int i = 0; i < max.length-1; i++)
                max[i] = 0;
        }
    }

    public String copySong(String file) {
        externalFile = Gdx.files.external("test.wav");
        Gdx.files.internal(file).copyTo(externalFile);
        exFile = Gdx.files.getExternalStoragePath() + "test.wav";
        System.out.println(exFile);
        return exFile;
    }

    public String sketchPath() {
        return Gdx.files.getExternalStoragePath();
    }

person user1877021    schedule 04.12.2012    source источник
comment
вы можете попробовать запустить его из командной строки/терминала, чтобы увидеть, есть ли у вас какие-либо исключения. java -jar yourjarname.jar   -  person DHall    schedule 05.12.2012
comment
Первое, что я хотел бы отметить, это то, что ваши вызовы функции string.replace ничего не делают, поскольку возвращаемая ими строка игнорируется. Я думаю, ты хочешь external = external.replace('\\', '/');   -  person gbtimmon    schedule 05.12.2012
comment
@DHall, во-первых, спасибо, ты легенда! Это прекрасно, по крайней мере, теперь я вижу цифры @ gbtimmon, спасибо, что указали и на это! Я внес эти изменения. Ошибки, по-видимому, связаны с поиском аудиосэмплов, он не может найти .wavs   -  person user1877021    schedule 05.12.2012


Ответы (1)


Щелкните правой кнопкой мыши свой настольный проект-> Путь сборки-> Настроить и проверьте, находится ли в «Источниках» папка ресурсов Android и отмечена ли она в «Заказ и экспорт». Также, когда вы экспортируете свою исполняемую банку, установите флажок «Упаковать необходимые библиотеки в сгенерированную библиотеку».

person Lestat    schedule 28.05.2013