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

在Lollipop设备编译AppRTCMobile时遇vectorDrawable及Task Gradle错误排查

嘿,看来你在给Lollipop设备搭建AppRTCMobile示例时碰到了挺典型的兼容性问题,我来帮你拆解下这两个错误的可能原因和修复方案:

关于VectorDrawable的错误

Lollipop(API 21)本身对VectorDrawable的原生支持有限,直接使用的话很容易出现加载失败或者崩溃的问题。这大概率是因为你的build.gradle里没开启VectorDrawable的兼容支持:

  1. 在你的app模块的build.gradle的android块中添加兼容配置:
android {
    defaultConfig {
        // 启用VectorDrawable的支持库兼容
        vectorDrawables.useSupportLibrary = true
    }
}
  1. 确保你的依赖中引入了AppCompat支持库(不管是AndroidX还是旧的Support Library):
dependencies {
    // AndroidX版本(推荐)
    implementation 'androidx.appcompat:appcompat:1.6.1'
    // 如果你用的是旧的Support Library
    // implementation 'com.android.support:appcompat-v7:28.0.0'
}
  1. 另外,在布局文件里引用VectorDrawable时,记得用app:srcCompat替代android:src;如果是在代码中加载Drawable,要使用AppCompatResources.getDrawable()方法,而不是直接调用getResources().getDrawable()。
关于Task相关的错误

这类错误通常和Gradle插件版本、Java版本不匹配有关,毕竟Lollipop是比较旧的系统,太高版本的Gradle插件会对它的兼容性变差:

  1. 调整项目根目录build.gradle中的Gradle插件版本,推荐用适配旧系统的稳定版本,比如4.2.2:
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.2'
    }
}

同时对应的Gradle Wrapper版本要匹配(比如gradle-6.7.1-all.zip),你可以在gradle/wrapper/gradle-wrapper.properties里修改:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
  1. 在app模块的build.gradle中指定Java编译版本为1.8,Lollipop支持Java 8的核心特性:
android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
  1. 检查你的build.gradle中有没有使用过时的Task或配置,比如旧的compile已经被implementation取代,androidTestCompile要换成androidTestImplementation,这些过时配置也可能导致Task执行失败。

另外,你之前修复了未闭合的},一定要确保整个build.gradle的语法完全正确——任何括号不匹配、语法错误都可能触发莫名其妙的Task相关报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:11:33