You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Gradle至3.2.0-alpha14后遇'android-manifest-metadata'创建失败报错

解决编译报错与Android 7.0启动问题

我来帮你一步步搞定这个问题——先解决升级Gradle后出现的编译报错,再修复Android 7.0设备无法启动的故障。

一、先搞定编译报错:Cannot create variant 'android-manifest-metadata' after configuration ':app:debugApiElements' has been resolved

这个错误核心原因是Google Services插件版本和新版Gradle构建插件不兼容,再加上旧版Crosswalk库的适配冲突,按下面的步骤调整:

  1. 升级Google Services插件版本
    你根目录build.gradle里的com.google.gms:google-services用的是3.3.0,和Gradle 3.2.0-alpha14完全不匹配。建议直接升级到4.0.1(这个版本和Gradle 3.2.x系列适配性很好),修改后的配置如下:

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0-alpha14'
        classpath 'com.google.gms:google-services:4.0.1'
    }
    
  2. 处理Crosswalk库的兼容性冲突
    你用的Crosswalk 23.53.589.4版本比较老,和新版Gradle的变体处理逻辑有冲突,给你两个可选方案:

    • 方案A:升级Crosswalk到更稳定的新版(比如24.53.595.0,这是最后几个支持Android 5.0+的稳定版本),替换依赖:
      implementation 'org.xwalk:xwalk_core_library:24.53.595.0'
      
    • 方案B:如果不想升级Crosswalk,就在android代码块里添加变体过滤规则,跳过冲突的变体:
      android {
          // 保留你原有的其他配置...
          variantFilter { variant ->
              def names = variant.flavors*.name
              if (names.contains("android-manifest-metadata")) {
                  setIgnore(true)
              }
          }
      }
      
  3. 同步并清理项目
    先执行File > Sync Project with Gradle Files,然后依次运行Build > Clean Project和Build > Rebuild Project,基本就能解决编译报错了。

二、修复Android 7.0设备无法启动的问题

编译通过后,针对Android 7.0(API 24)的启动故障,重点排查这几个常见点:

  1. 验证Multidex配置是否正确
    你已经开了multiDexEnabled true,但还要确保Application类正确初始化Multidex:

    • 如果你的Application类继承自Application,修改成这样:
      public class MyApplication extends Application {
          @Override
          protected void attachBaseContext(Context base) {
              super.attachBaseContext(base);
              MultiDex.install(this);
          }
      }
      
    • 如果不想自定义Application类,直接在Manifest里指定用MultiDexApplication:
      <application
          android:name="android.support.multidex.MultiDexApplication"
          <!-- 保留你原有的其他属性 -->
      >
      
  2. 适配Crosswalk在Android 7.0的运行问题
    旧版Crosswalk在Android 7.0上容易出现权限或WebView兼容问题,试试这两个操作:

    • 确保Manifest里加了必要的权限:
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      
    • 在启动XWalkActivity之前,添加这些适配参数:
      XWalkPreferences.setValue(XWalkPreferences.ANIMATABLE_XWALK_VIEW, true);
      XWalkPreferences.setValue(XWalkPreferences.JAVASCRIPT_CAN_OPEN_WINDOW, true);
      
  3. 统一Firebase依赖版本
    我注意到你Firebase的依赖版本不一致(比如firebase-auth是15.1.0,其他大多是15.0.x),这种版本差异可能导致初始化异常,建议统一成同一个版本,比如全部用15.0.2:

    implementation 'com.google.firebase:firebase-core:15.0.2'
    implementation 'com.google.firebase:firebase-appindexing:15.0.2'
    implementation 'com.google.firebase:firebase-config:15.0.2'
    implementation 'com.google.firebase:firebase-invites:15.0.2'
    implementation 'com.google.firebase:firebase-messaging:15.0.2'
    implementation 'com.google.firebase:firebase-auth:15.0.2'
    implementation 'com.google.firebase:firebase-database:15.0.2'
    

三、备选方案:如果不想用Alpha版Gradle插件

要是你觉得用Gradle 3.2.0-alpha14这种测试版太折腾,也可以回退到3.1.0稳定版,然后针对Android 7.0的问题做这些调整:

  • 确保Multidex配置正确(同上)
  • 升级Crosswalk到支持Android 7.0的版本
  • 如果应用有HTTP请求,在Manifest的application标签里添加android:usesCleartextTraffic="true"(Android 7.0默认禁止明文流量)

内容的提问来源于stack exchange,提问作者user7545314

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:31:13