首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条目名“META/MANIFEST.MF”碰撞

条目名“META/MANIFEST.MF”碰撞
EN

Stack Overflow用户
提问于 2021-01-11 23:35:04
回答 1查看 1.6K关注 0票数 4

描述

运行detox build -c android时,我一直收到下面的错误

代码语言:javascript
复制
> Task :app:packageDebugAndroidTest FAILED
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:packageDebugAndroidTest'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Entry name 'META-INF/MANIFEST.MF' collided

再生产

  • 通过步骤这里为android设置解毒(不需要测试管家步骤)
  • 按照所述设置以下2个文件(减去我的依赖项)
  • 运行detox build -c android (不管是否先构建了aosp仿真器)

我的档案

.detoxrc.json

代码语言:javascript
复制
{
  ...
    "android": {
      "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
      "build": "cd android && ./gradlew app:assembleDebug app:assembleAndroidTest -DtestBuildType=debug && cd ..",
      "type": "android.emulator",
      "device": {
        "avdName": "Pixel_API_28_AOSP"
      }
    }
  ...

android/app.build.gradle

前三个选项是试图解决问题的失败尝试。在尝试安装Detox之前,项目中已经出现了最后一个选项。

代码语言:javascript
复制
...
android {
    ...
    packagingOptions {
        // exclude 'META-INF/**'
        // pickFirst 'META-INF/**'
        // merge 'META-INF/**'
        pickFirst "**"
    }
    ...
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
    implementation 'com.facebook.fresco:animated-gif:2.0.0'
    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.fbjni'
    }
    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
        exclude group:'com.squareup.okhttp3', module:'okhttp'
    }
    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }
    addUnimodulesDependencies()

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }

    androidTestImplementation('com.wix:detox:+')
    androidTestImplementation(project(path: ":detox"))
}
...

环境

  • 排毒:^17.14.3
  • 本地反应: 0.63.2
  • com.android.tools.build:gradle: 4.0.1
  • 节点: v12.19.0
  • 设备: Android像素模拟器API 28
  • 操作系统: MacOS Catalina v10.15.7
  • 试飞员:开玩笑

其他可能有用的信息

  • Detox为iOS构建并运行测试,但android不行。
  • 使用--stacktrace运行build命令不会提供任何进一步的信息
  • 这是我第一次尝试在这个项目上建立戒毒所。
  • 排毒医生中列出的解决方案还没有修复它
  • 我发现了很多关于线程相关错误的东西(尽管没有提到排毒)与gradle版本有关。很多人建议降级。
  • 我可以通过android使用build命令在普通Pixel模拟器和AOSP模拟器上构建实际的应用程序。此问题仅在试图通过detox-cli使用build命令时发生。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-27 10:06:12

可能的解决办法是禁用Gradle插件3.6.0-alpha 09中引入的zipflinger。只需在gradle.properties android.useNewApkCreator=false中添加新行即可

阅读更多关于谷歌博客上的标志或检查类似问题

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65676024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档