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

Android Studio集成Material Calendar后出现android.support.constraint包不存在错误

解决AndroidX项目中Material CalendarView导致的android.support.constraint包不存在错误

在Android Studio的Java项目中集成Material CalendarView实现日期范围标记时,出现编译错误:error: package android.support.constraint does not exist。错误来自自动生成的FragmentFirstBinding.java文件,该文件引用了旧的android.support.constraint.ConstraintLayout,但项目已配置AndroidX(gradle.properties中启用android.useAndroidX=true、android.enableJetifier=true,且依赖了androidx.constraintlayout:constraintlayout),尝试过切换库、更新依赖、清理重建等方法无效。


报错文件片段(FragmentFirstBinding.java)

// Generated by view binder compiler. Do not edit!
package com.example.endurence.databinding;

import android.support.constraint.ConstraintLayout;
import android.view.LayoutInflater;
// 其余代码略

项目配置代码

build.gradle(:app)

plugins {
    id 'com.android.application'
}

android {
    compileSdk 34
    defaultConfig {
        applicationId "com.example.endurence"
        minSdk 30
        targetSdk 34
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
    }
    // 其余配置略
}

dependencies {
    implementation 'androidx.appcompat:appcompat:'
    implementation 'com.google.android.material:material:1.11.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    implementation 'com.github.prolificinteractive:material-calendarview:2.0.1'
    // 其余依赖略
}

settings.gradle

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}
// 其余配置略

gradle.properties

android.nonTransitiveRClass=true
android.useAndroidX=true
android.enableJetifier=true

activity_main.xml片段

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="#292929">
    <!-- 其余布局略 -->
    <com.prolificinteractive.materialcalendarview.MaterialCalendarView
        android:id="@+id/calendar_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:mcv_selectionMode="range"
        <!-- 其余属性略 -->
    />
</RelativeLayout>

解决方案

  1. 升级Material CalendarView到AndroidX兼容版本
    当前使用的2.0.1版本依赖旧support库,Jetifier无法完全转换其内部布局绑定引用。替换为AndroidX迁移后的新版本:

    implementation 'com.prolificinteractive:material-calendarview:3.0.0'
    
  2. 强制清理绑定生成文件
    手动删除自动生成的绑定文件目录:
    路径:app/build/generated/data_binding_base_class_source_out/debug/out/com/example/endurence/databinding/
    删除后执行Clean Project -> Rebuild Project。

  3. 检查并修复布局文件引用
    打开fragment_first.xml(对应FragmentFirstBinding的布局文件),确认其中的ConstraintLayout是AndroidX版本:

    <!-- 替换旧引用 -->
    <androidx.constraintlayout.widget.ConstraintLayout ...>
    
  4. 验证Jetifier全局配置
    确保项目根目录的gradle.properties(而非仅模块级)中以下配置生效:

    android.useAndroidX=true
    android.enableJetifier=true
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:16:27