我的简单应用程序出了问题。我正在关注android网站上的教程。他们使用Holo Light作为主题的部分。但我的问题是,当我选择这个主题时,我收到了一个错误。我也查看了这个topic并尝试了一些方法,但我仍然得到同样的错误。
这是我的错误:
java.lang.IllegalArgumentException:您需要使用Theme.AppCompat 主题(或后代)与设计库。 在android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:34) 在android.support.design.widget.CoordinatorLayout。(CoordinatorLayout.java:178) 在android.support.design.widget.CoordinatorLayout。(CoordinatorLayout.java:172) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 在org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:458) 在org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:170) 在org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:103) 在com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:168) 在android.view.BridgeInflater.loadCustomView(BridgeInflater.java:247) 在android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:171) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在android.view.LayoutInflater.inflate(LayoutInflater.java:492) 在android.view.LayoutInflater.inflate(LayoutInflater.java:394) 在com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:223) 在com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426) 在com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) 在com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:510) 在com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:498) 在com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888) 在com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498) 在com.android.tools.idea.rendering.RenderTask.access $ 600(RenderTask.java:72) 在com.android.tools.idea.rendering.RenderTask $ 3.call(RenderTask.java:610) 在com.android.tools.idea.rendering.RenderTask $ 3.call(RenderTask.java:607) 在com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:362) 在com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:607) 在com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629) 在com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel $ 6.run(AndroidDesignerEditorPanel.java:480) 在com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) 在com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) 在com.intellij.util.ui.update.MergingUpdateQueue $ 2.run(MergingUpdateQueue.java:254) 在com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) 在com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) 在com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) 在com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm $ Request $ 1.run(Alarm.java:351) at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745)
这是我的档案:
styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.flax.myfirstapp">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MyActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName=".MyActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.flax.myfirstapp.MyActivity" />
</activity>
</application>
</manifest>
MyActivity.java
package com.flax.myfirstapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;
import android.widget.EditText;
public class MyActivity extends AppCompatActivity {
......
你能帮我解决这个问题吗?我是Android开发界的新手。我昨天因为这个错误而陷入困境。 :(
这是我的文件结构的图像以及错误:
答案 0 :(得分:3)
更改
<style name="AppTheme.NoActionBar">
到
<style name="Theme.AppCompat.Light.NoActionBar">
并设置
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
答案 1 :(得分:2)
我遇到了同样的问题:
由于您的项目似乎是一个具有默认配置的新项目,并且您已经拥有:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
还有:
android:theme="@style/AppTheme.NoActionBar">
在Manifest
中, Android Studio 似乎是一个错误或问题,我希望很快就会修复。
但是根据我们的代码,一切都没问题,没问题,我会将此报告给 Google 。
还有更多,因为layout
来自main_layout.xml
这一行:
<include layout="@layout/content_main" />
这应该是原因,但是,我已经尝试过同样的问题。
但是,就目前而言,如果您需要设计Layout
,则可能需要将Theme
的{{1}}更改为Android Studio's Preview
Light
}。
或者将主题更改为DarkActionbar
,如下所示:
它应该工作。