2016-11-11 89 views
0

我在桌面上測試我的應用程序(與android,核心和桌面模塊),一切工作正常。libGDX android資產文件未找到

現在,我嘗試在Android上運行,它給了我FileNotFound。我在桌面上運行之前將android資源鏈接到desktopLauncher,但是我是否打算爲android做類似的操作?

  File file = Gdx.files.internal("liver_initial_joints.json").file(); 
      FileInputStream fis = new FileInputStream(file); 
      byte[] data = new byte[(int) file.length()]; 
      fis.read(data); 
      fis.close(); 

      str = new String(data, "UTF-8"); 

我有我的文件... /安卓/資產/ liver_initial_joints.json

回答

1

Android不提供對內部應用程序的目錄直接java.io.File方式訪問。如果你看看libgdx的javadocs,你會發現它不能用於絕對和外部類型的文件。

如果你只需要讀取一個字符串或字節數組,你可以使用fileHandle.readString()fileHandle.readBytes()。如果您需要輸入流,請使用fileHandle.read();

例如:

 byte[] data = Gdx.files.internal("liver_initial_joints.json").read(); 
     str = new String(data, "UTF-8"); 
+0

內部()閱讀()返回一個InputStream的字節,而不是[]。 但它是一個解決方案,它的工作,我只需要調用內部()。讀()。讀(數據)。 謝謝。 – neogineer

1

我發現一個非常簡單的方法來做到這一點是:

InputStream is = context.getAssets().open("liver_initial_joints.json"); 
+0

謝謝! 但是,這是平臺特定的代碼? android context是'context'嗎? – neogineer

+1

是的。抱歉沒有指定 –