2012-12-04 3 views
0

게임을 코딩하는 데 Libgdx를 사용하고 있습니다. Gdx.files.internal ("file")과 같은 메서드를 사용하여 파일을로드합니다. 응용 프로그램을 내 보내면 해당 파일이로드됩니다.컴파일 .Jar 충돌 (Java 콘솔 없음), Eclipse에서 컴파일 및 실행됩니까?

일부 파일은 USER 디렉토리에 복사되고 거기에서도로드됩니다 (오디오). 이것이 앱을 충돌시키는 이유입니까? 여기에 언급 한 바와 같이 : 누군가가 나에게 그가는 것이 좋을 것 뭐죠에 관한 아이디어를 줄 수 있다면 Java application runs properly in Eclipse, but not as .jar

, 그 중 하나 내가 아무 생각

컴파일이없는 나를 위해 자바 콘솔을 시작하지 않습니다. 항아리는 여기에 있습니다 :

을 Heres (이클립스하지만 난 볼 수있는 모든 물건 이잖아 확인 작업을 의미하며 않음) 내가 문제를 일으키는 생각하는 오디오 코드를로드

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(); 
    } 
(너무 내 라이브러리로) https://www.dropbox.com/s/rz9v7lkdsj78z20/RUSHmup.jar
+1

명령 프롬프트/터미널에서 실행하여 예외가 있는지 확인할 수 있습니다. 'java -jar yourjarname.jar' – DHall

+1

가장 먼저 지적해야 할 점은 string.replace 함수 호출은 반환 된 문자열이 무시되기 때문에 아무것도하지 않는다는 것입니다. 내 생각에 당신은'external = external.replace ('\\', '/'); ' – gbtimmon

+0

@DHall 첫 번째로, 당신은 전설 감사합니다! 이상적입니다. 적어도 숫자는 볼 수 있습니다. @ gbtimmon 그 점을 지적 해 주셔서 감사합니다! 나는 그 변화를 만들었습니다 오류는 겉으로는 오디오 샘플을 찾는 것으로서, .wav를 찾을 수 없습니다. – user1877021

답변

0

오른쪽 c 데스크탑 프로젝트 -> 빌드 경로 -> 구성 및 "소스"가 안드로이드 자산 폴더인지 확인하고 "주문 및 내보내기"를 선택하십시오. 실행 가능한 jar 파일을 내보낼 때 "필요한 라이브러리를 생성 된 라이브러리에 패키지하십시오"를 선택하십시오.

관련 문제