【问题标题】:Android Studio Corrupted .java file after improper shutdownAndroid Studio 不正确关机后损坏的 .java 文件
【发布时间】:2015-04-07 19:43:30
【问题描述】:

我在运行 Android Studio 时将笔记本电脑休眠,后来发现笔记本电脑已关闭。现在,我的一个源文件在 Android Studio 和写字板中也显示为空。当我在 Notepad++ 中打开它时,它显示 NUL 字符。该文件的大小与以前相同,这意味着文件内容不会丢失(希望如此)。

如何恢复此文件的实际内容?我需要这个,因为我没有这个文件的备份。

【问题讨论】:

  • 我以前从未听说过这种情况!你至少有 .class 文件吗?
  • 我找不到 .class 文件
  • 这实际上发生在我身上两次。一个来自 Sublime Text 的崩溃,一个来自 Android Studio。见鬼
  • 这种情况经常发生在我身上。尤其是在蓝屏之后
  • 在这里查看我的答案,它可能对你有帮助stackoverflow.com/questions/41175409/…

标签: java android android-studio


【解决方案1】:

查看 Android Studio 是否在本地历史记录中保留了一个版本。

在 Android Studio 中转到您的 java 文件,然后导航到

VCS -> Local History -> See History

另外,开始使用版本控制,比如 git。

【讨论】:

  • 或者可能更简单,右键文件并转到本地历史记录
  • 它说内容相同并且什么也不显示,就像在记事本中一样。我注意到的一件事是在 Android Studio 底部的行分隔符中,它通常显示“CRLF”,它显示此文件的 n/a。
  • 它节省了我两天的工作量......但现在所有导入都失败了
  • 在此之前我使用 Invalidate Caches/Restart 选项犯了一个错误,它冲走了我所有的本地历史:(小心
  • 救命稻草。在模拟器 + Mac 崩溃并自动重启后,我的 java 文件突然变成了 xml 文件(我想知道为什么)。
【解决方案2】:

这总是有效的

步骤 1. 在您的电脑中搜索 *.apk 它会显示许多 apk 的位置,但会找到 app-debug.apk 这是你的应用程序/项目的最新版本,它在模拟器或物理设备上运行(通过检查它的位置来确认它。它应该在你的项目文件夹中)

步骤 2. 成功找到此 apk 后,将其重命名为 zip 并在任何 zip 或 rar 打开软件中打开

Step 3. 解压后你会在Extracted文件夹的根目录找到classes.dex

第四步。Download dex2jar最新版本

步骤 5. 将 classes.dex 文件放到 dex2jar 文件夹中的 de2jar.bat 文件中。这会从中提取一个罐子。

步骤 6. 现在在 jd-gui (Download here) 中打开这个 jar 文件 瞧,您会看到您在最近的工作项目中上过的所有课程。

这只是我从 stackoverflow 社区的答案中获得的所有帮助的小礼物。

乐于助人:)

【讨论】:

  • 您的解决方案救了我。非常感谢:*
  • 太好了!谢谢你救了我,本地历史是空的!
  • 谢谢!!很好的解决方案
  • 它提取的文件(第 5 步)是一个名为“classes-dex2jar.jar”的 1K 文件,它与原始的 9231K“classes-dex”文件位于同一文件夹中。用 jd-gui 打开 1K classes-dex2jar.jar 没有产生任何结果(正如预期的 1K 文件)。 de2jar.bat 似乎对我不起作用,还有其他选择吗? jar 文件是否应该称为“classes-dex2jar.jar”?
  • 是的,生成的文件名为“classes-dex2jar.jar”。再次尝试重复步骤。或尝试将 classes.dex 放到 dex2jar.bat 而不是 d2j-dex2jar.bat 在同一文件夹中(虽然它已被弃用但可能仍然有效)
【解决方案3】:

总是帮助我解决这个问题的简单步骤

删除路径的缓存文件夹

 C:\Users\user\.AndroidStudio3.6\system\caches.

只删除上面的文件夹有时是行不通的,所以也需要删除特定项目的缓存文件夹

F:\AndroidStudioProjects\sampleApplication\.idea\caches

【讨论】:

  • 是的,这个问题是由于关机不当造成的,我遇到过很多次,通过这个步骤解决了。谢谢。
【解决方案4】:

Android Studio 有一个内置文件历史记录,我会先检查一下。您可能会在那里找到您的代码。如果你右键单击你的文件,你可以找到它。

如果只有一个特殊字符(即 nul)可以使用 notepad++ 将其删除,并检查是否可以解决您的问题。

【讨论】:

    【解决方案5】:

    最简单的灵魂!

    1. 打开这个网站 - http://www.javadecompilers.com
    2. 上传项目的APK文件(app-debug.apk)
    3. 我们开始了,您可以查看并下载整个项目。

    注意:如果你想要你的 java 文件,你可以在反编译(下载)文件夹的父文件夹的文件夹 'com' 中找到它们。

    【讨论】:

      【解决方案6】:

      关闭 android studio 将项目从当前文件夹移动到另一个文件夹,然后从该文件夹重新打开应用程序对我有用

      【讨论】:

      • 谁会想到这实际上会起作用
      【解决方案7】:

      我不确定是什么导致了它的发生,而 android studio 是我用过的最糟糕的 IDE(一个工具怎么敢不问就编辑和保存用户文件?谷歌的可用性团队应该得到一个诺贝尔)

      但这就是我为解决它而做的事情......

      一旦你发现这样的事件在关闭 android studio 时发生,停止任何正在进行的构建并且不要尝试运行项目...
      它接缝有时没有在真正的源文件中进行修改,但是android studio正在打开一些中间文件而不是原始源并在您打开源时向您显示...某种符号链接混乱

      所以在 android studio 关闭的情况下,打开文件资源管理器转到您的工作区并在另一个目录中创建项目的副本(尽可能远离 android studio)

      使用任何文本编辑器打开您的源文件并检查它们是否还可以...

      重新打开android studio并逐个文件复制/粘贴,将你制作的复制项目的内容复制到官方项目中

      这非常无聊,可能需要一段时间,取决于您的项目大小,但我设法恢复了 90% 以上的文件

      【讨论】:

        【解决方案8】:

        首先:始终使用源代码管理。 Git 和类似的 DVCS 不需要服务器,可以在本地为您创建存储库。

        至于恢复你的文件,是否实用就看文件系统指向的磁盘块是否正确了;您看到 \0 的事实表明您正在使用 SSD,并且文件系统记录的大小正确但块错误,这意味着不太可能恢复。您应该使用十六进制编辑器打开该文件,并查看超出最初几个字节的任何内容是否可读。如果没有,文件本身几乎肯定是不可恢复的。

        但是,IntelliJ 包括 a local-history feature,它可能具有该文件的较旧副本。

        【讨论】:

        • 那里也没有显示任何内容。但它说内容是相同的
        【解决方案9】:

        在 Android Studio 中试用

        无效并缓存/重启 ....

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-01
          • 2021-01-18
          相关资源
          最近更新 更多