配置不正确.请使用Gradle 7.0.2为VectorDrawableCompat配置您的内部版本



我以前工作的应用程序突然在我的LaunchActivity中崩溃,并带有:Please configure your build for VectorDrawableCompat。Gradle 7.0.2也出现了这种情况,这是没有意义的,因为其他关于这个问题的帖子都是3年前的,建议更新到Gradle 2.0+(更旧(,并使用最新的android支持库(现在androidx没有问题(。他们还建议设置vectorDrawables.useSupportLibrary = true,我的应用程序中已经出现了这种情况。所以这些帖子与我的问题无关。

  • minSdkVersion 21
  • targetSdkVersion 31
  • vectorDrawables.useSupportLibrary=true
  • classpath"com.android.tools.build:gradle:7.0.2'">
  • 实现"androidx.appcompat:appcompat:1.2.0">

奇怪的是,在我切换到另一个分支,一个月后又回到主分支后,这种情况开始发生在我的主分支上。然而,master分支根本不应该改变,它以前一定一直在工作,因为我在前一个月从中截取了一个生产版本,生产版本没有崩溃。

Caused by: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
at androidx.appcompat.widget.ResourceManagerInternal.checkVectorDrawableSetup(ResourceManagerInternal.java:495)
at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:140)
at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:480)
at androidx.appcompat.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:93)
at androidx.appcompat.app.AppCompatDelegateImpl.attachToWindow(AppCompatDelegateImpl.java:797)
at androidx.appcompat.app.AppCompatDelegateImpl.ensureWindow(AppCompatDelegateImpl.java:773)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreate(AppCompatDelegateImpl.java:501)
at androidx.appcompat.app.AppCompatActivity$2.onContextAvailable(AppCompatActivity.java:131)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:297)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:273)
at com.somewearlabs.sw.ui.LaunchActivity.onCreate(LaunchActivity.kt:14)
at android.app.Activity.performCreate(Activity.java:7963)
at android.app.Activity.performCreate(Activity.java:7952)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)

我终于解决了这个问题。当我在Android Studio中检查崩溃时,单击文件/行号链接(例如"ResourceManagerInternal.java:495"(为该类打开了两个选项,一个在appcompat库版本1.2.0中,另一个在1.3.0中。在我的依赖项中一定使用了两个版本,尽管在我所有项目的build.gradle文件中都明确表示androidx.appcompat:appcompat:1.2.0。使用断点表明1.3.0中的行在启动应用程序时被调用。

然后我做了文件>使缓存无效并重新启动

我认为确保项目中只使用一个版本的appcompat可能会解决问题,所以我将所有build.gradle文件从使用androidx.appcompat:appcompat1.2.0切换到1.3.0。重新同步后,故障消失了。我不知道为什么这个崩溃一开始就发生了——如果有人能对此有所了解的话——但我无论如何都需要更新appcompat依赖关系,所以它成功了。

最新更新