Android 找不到EOCD签名

Android 找不到EOCD签名,android,android-studio,firebase,Android,Android Studio,Firebase,我正在做一个firebase android项目。当我试图从android studio运行应用程序时,它显示了一个错误 Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'. > com.android.build.api.transform.TransformException: java.io.IOException: EOCD signature not found in th

我正在做一个firebase android项目。当我试图从android studio运行应用程序时,它显示了一个错误

Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: java.io.IOException: EOCD signature not found in the last 22 bytes of the file.
其实,我不明白这是甚么问题,为何会出现这种情况?
有人能帮我吗?

我同时面对这个错误和另一个错误: 任务“:app:packageDebug”的执行失败-读取zip文件失败

这两个问题都是由政府共同解决的

1) 从任务管理器终止OpenJDK平台二进制进程

2) 正在删除apk文件

3) 重新启动Android Studio

4) 清洁工程


此解决方案可能与所问问题无关,但它解决了这两个错误。

然后从发布文件夹中删除app-release.apk和output.json 1.清洁的 2.重建


这些步骤对我很有效。

删除输出apk文件可能会有所帮助。
Android studio在你身上浪费的时间和时间只需遵循以下两个步骤:

  • 清洁工程
  • 重建项目

  • 当您在构建拆分apk的同时将输出文件重命名为相同名称时,也会发生这种情况,只需删除app-release.apk即可。然后重建项目。这对我有用

    以下是步骤:

  • 删除整个生成文件夹(转到项目视图以轻松找到它)
  • 清理项目
  • 再次运行该项目,并应将其安装

  • 可能已经晚了,但我似乎对EOCD问题有了一个可以解释的解决方案。 可以通过在项目中启用多索引来修复此问题

    第1步: 应用程序内/build.gradle 在android块中

    multiDexEnabled true
    
    第二步: 在dependencies块中添加multidex gradle依赖项

    implementation 'androidx.multidex:multidex:2.0.1'
    
    第三步: 转到app/AndroidManifest.xml文件 若您已经通过name属性声明了一个应用程序,那个么打开扩展该应用程序的类文件,并用multidexapplication替换它

    public class ApplicationController extends MultiDexApplication
    
    现在构建应用程序,EOCD错误将得到修复。
    至少在我的情况下是这样。

    好的。我找到了解决方案。启用多索引支持后,应用程序运行良好。我试图清理项目,但失败了,因为build/intermediaries/transform文件夹中的一些文件被OpenJDK平台二进制文件使用。我试图通过资源管理器手动删除文件夹,但失败。在杀死OpenJDK平台二进制文件之后,一切都变得正常了。可能是其中的一个错误。我有一个错误“EOCD开始于…但文件…”当Android Studio仍然打开时,第1步和第2步对我有效。是的,只有执行第1步和第2步解决了我的问题。感谢从模拟器中删除?@Saurabh no,项目路径中的输出文件,对我有用,谢谢。。啊,太糟糕了。android studio毫无意义。是的@Sergio,直到我们得到关于堆栈溢出的完美答案。