在android studio

时间:2016-02-03 07:13:06

标签: android android-studio

我的简单应用程序出了问题。我正在关注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开发界的新手。我昨天因为这个错误而陷入困境。 :(

这是我的文件结构的图像以及错误:

enter image description here

2 个答案:

答案 0 :(得分:3)

更改

<style name="AppTheme.NoActionBar">

<style name="Theme.AppCompat.Light.NoActionBar"> 

并设置

android:theme="@style/Theme.AppCompat.Light.NoActionBar"

答案 1 :(得分:2)

我遇到了同样的问题:

enter image description here

由于您的项目似乎是一个具有默认配置的新项目,并且您已经拥有:

<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,如下所示:

enter image description here

它应该工作。