@android:style/Theme.Translucent引发的报错
程序员文章站
2022-07-02 11:47:57
<activity android:name=".XXXXActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent"/>
<activity android:name=".MainActivity">
设置主题的
@android:style/Theme.Translucent
报错
java.lang.IllegalStateException: You need to use a Theme.AppCompat
theme (or descendant) with this activity.
看着错误提示是@android:style/Theme.Translucent不属于 Theme.AppCompat theme
解决方式:
当前的
MyActivity extends AppCompatActivity
修改为
MyActivity extends Activity
具体源码大致
Activity
@Override
public void setTheme(int resid) {
super.setTheme(resid);
mWindow.setTheme(resid);
}
AppCompatActivity
/**
* @return The {@link AppCompatDelegate} being used by this Activity.
*/
@NonNull
public AppCompatDelegate getDelegate() {
if (mDelegate == null) {
mDelegate = AppCompatDelegate.create(this, this);
}
return mDelegate;
}
........
@Override
public void setTheme(@StyleRes final int resId) {
super.setTheme(resId);
getDelegate().setTheme(resId);
}
通过代码查找
AppCompatDelegateImpl的createSubDecor方法中
TypedArray a = mContext.obtainStyledAttributes(R.styleable.AppCompatTheme);
if (!a.hasValue(R.styleable.AppCompatTheme_windowActionBar)) {
a.recycle();
throw new IllegalStateException(
"You need to use a Theme.AppCompat theme (or descendant) with this activity.");
}
看出来AppCompatTheme里没有找到Translucent所以报错了。
本文地址:https://blog.csdn.net/litaowansui/article/details/110630633
上一篇: 小红书开启好物推荐功能?
推荐阅读
-
Android Studio启动报错Java 1.8 or later is required的解决方法
-
基于android样式与主题(style&theme)的详解
-
Android Studio运行报错:You need to use a Theme.AppCompat theme (or descendant) with this activity. 的解决办法
-
Android添加glide库报错Error: Failed to resolve: com.android.support:support-annotations:26.0.2的解决
-
Android Studio更新到3.1以后旧项目报错的解决办法
-
Android 避免APP启动闪黑屏的解决办法(Theme和Style)
-
android studio Error:Unable to start the daemon process 报错问题的解决办法
-
Android记录一次InstallerPackage apk报错的问题分析
-
android studio 3.6.1导入项目报错提示无法下载classpath里的内容
-
Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法