簡體   English   中英

Android Libgdx - 無法保存在文件中

[英]Android Libgdx - can't save in file

Firstable我很抱歉我的英語很差。 我正在使用libgdx在java中為android開發一個應用程序。 我想寫一個文件來保存一些應用程序對象,我正在使用ObjectOutputStream來做到這一點。 以下是代碼的摘錄:

            try {
                os_savedGame = new ObjectOutputStream(new FileOutputStream("savedGame.txt"));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            try {
                os_savedGame.writeObject(obj1);
                os_savedGame.writeObject(obj2);
            } catch (IOException e) {
                 e.printStackTrace();
            }

我把它作為桌面應用程序運行,到目前為止很好,但是當我嘗試作為Android應用程序運行時,我收到以下錯誤:嘗試調用虛方法'void java.io.ObjectOutputStream.writeObject(java.lang.Object) '在空對象引用上

我知道在桌面版上,該文件存儲在android \\ assets文件夾中,但是我在手機中查找了相應的文件夾,但是找不到它。 我在內部和外部內存中搜索數據/ name_of_my_project,但我無法找到它。 以前我有一個類似的錯誤,當我無法加載Android版本的皮膚(說皮膚不存在),而我可以在桌面版本,我認為我的問題可能是相關的地方文件存儲在Android版本中。 請問有人給我一個提示嗎?

謝謝!

我建議您閱讀官方文檔: https//github.com/libgdx/libgdx/wiki/File-handling

內部文件相對於桌面上的應用程序根目錄或工作目錄,相對於Android上的資產目錄,以及相對於GWT項目的core / assets /目錄。 這些文件是只讀的。

它提到存儲在assets文件夾中的文件是只讀的。 為了保存游戲狀態,我建議使用Preferences API,它允許您存儲鍵值對並輕松檢索它們。 更多信息請訪問: https//github.com/libgdx/libgdx/wiki/Preferences

將對象轉換為字符串是另一回答: 如何將對象序列化為字符串

如果您仍想寫入文件,則必須使用本地存儲,這將在wiki中進一步說明(請參閱最頂層鏈接)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM