Странное исключение Я получаю системное приложение, когда использую только FrameLayout
в моем SampleActivity
.
Caused by: java.lang.ClassCastException: androidx.appcompat.widget.ContentFrameLayout cannot be cast to android.support.v7.widget.ContentFrameLayout
05-22 08:41:05.357 10520 10520 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:685)
05-22 08:41:05.357 10520 10520 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:516)
05-22 08:41:05.357 10520 10520 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:464)
05-22 08:41:05.357 10520 10520 E AndroidRuntime: at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
05-22 08:41:05.357 10520 10520 E AndroidRuntime: at com.sample.SampleActivity.onCreate(SampleActivity.java:98)
Итак, я посмотрел исходный код AppCompatDelegateImpl
, представленный здесь: AppCompatDelegateImpl
импорт в SampleActivity.java
:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
Хотя этот класс является частью android appcompat.v7
, но он импортирует androidx.appcompat.widget.ContentFrameLayout
Означает ли это, что appcompat.v7 внутренне использует зависимости androidx? Если да, то почему я получаю это исключение?
Примечание : Пожалуйста, избегайте решений на основе gradle, поскольку это системное приложение.