相关疑难解决方法(0)

您需要在此活动中使用Theme.AppCompat主题(或后代)

Android Studio 0.4.5

用于创建自定义对话框的Android文档:http://developer.android.com/guide/topics/ui/dialogs.html

如果需要自定义对话框,则可以将"活动"显示为对话框,而不是使用"对话框API".只需创建一个活动并将其主题设置为<activity>清单元素中的Theme.Holo.Dialog :

<activity android:theme="@android:style/Theme.Holo.Dialog" >
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这个时,我得到以下异常:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity
Run Code Online (Sandbox Code Playgroud)

我支持以下内容,我不能使用大于10的内容:

minSdkVersion 10
targetSdkVersion 19
Run Code Online (Sandbox Code Playgroud)

在我的风格中,我有以下内容:

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)

在我的清单中,我有这个活动:

 <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:theme="@android:style/Theme.Holo.Light.Dialog"
            android:name="com.ssd.register.Dialog_update"
            android:label="@string/title_activity_dialog_update" >
        </activity>
Run Code Online (Sandbox Code Playgroud)

像我这样创建对话框是我要做的事情,因为我已经完成了布局.

谁能告诉我如何解决这个问题?

android android-layout

949
推荐指数
33
解决办法
77万
查看次数

您需要在此活动中使用Theme.AppCompat主题(或后代).更改为Theme.AppCompat会导致其他错误

我在我的应用程序中使用appcompat v22.1.0并使用工具栏.我用的时候一切都很好Theme.AppCompat.Light.NoActionBar.当我开始实现时AlertDialog,它会产生如下错误:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:113)
        at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146)
        at android.support.v7.app.AppCompatDialog.<init>(AppCompatDialog.java:47)
        at android.support.v7.app.AlertDialog.<init>(AlertDialog.java:92)
        at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:882)
        at com.ramabmtr.map.findingmoo.MainActivity.onOptionsItemSelected(MainActivity.java:216)
        at android.app.Activity.onMenuItemSelected(Activity.java:2572)
        at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:353)
        at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:144)
        at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)
        at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99)
        at android.support.v7.internal.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:74)
        at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:164)
        at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:740)
        at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:802)
        at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
        at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:949)
        at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:939)
        at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:598)
        at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
        at android.view.View.performClick(View.java:4084)
        at android.view.View$PerformClick.run(View.java:16989)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4812)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559) …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat

59
推荐指数
7
解决办法
9万
查看次数

测试ActionBarActivity时,"你需要使用Theme.Appcompat主题...",但我是

测试一个在Eclipse中通过Android JUnit测试从android-support-v7-appcompat使用ActionBarActivity的应用程序时遇到问题.在模拟器或设备中运行时,一切似乎都能正常工作.

我尝试使用ActivityUnitTestCase中的模拟应用程序和使用ActionBarActivity的startActivity,并按照ActionBarCompat中的建议更改了值-v11等中的父主题:java.lang.IllegalStateException:您需要使用Theme.AppCompat但它仍然无效.

你需要使用一个Theme.AppCompat主题(或后代),这个活动也没有给出答案,也就是那个问题的人既没有在他的清单中指定的Theme.AppCompat(我这样做),也不是他真的想要扩展ActionBarActivity(我这样做).他的解决方案是简单地扩展Activity.

我究竟做错了什么?

这是我得到的错误(来自Junit-Window的Failure-Trace):

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:108)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at android.hello.HelloWorldActivity.onCreate(HelloWorldActivity.java:14)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:158)
at android.hello.test.HelloWorldActivityTest.setUp(HelloWorldActivityTest.java:26)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
Run Code Online (Sandbox Code Playgroud)

HelloWorldActivity.java

package android.hello;

import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloWorldActivity extends ActionBarActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView tv = …
Run Code Online (Sandbox Code Playgroud)

java android unit-testing android-actionbar android-actionbar-compat

36
推荐指数
1
解决办法
6685
查看次数

如何修复:"你需要在这个活动中使用Theme.AppCompat主题(或后代)"

根据视频说明,我无法在全屏模式下运行Android应用.当它试图运行时,应用程序崩溃并出现错误.

"You need to use a Theme.AppCompat theme (or descendant) with this activity

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.djsg38.hikerswatch">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

样式文件

<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>
Run Code Online (Sandbox Code Playgroud)

可能有用的部分MainActivity

public class MainActivity extends AppCompatActivity {
Run Code Online (Sandbox Code Playgroud)

android android-appcompat appcompatactivity

29
推荐指数
4
解决办法
8万
查看次数

如何修复此错误:您需要在此活动中使用Theme.AppCompat主题(或后代)

我搜索了所有的互联网网站来修复这个错误,但我不能.我只想用两个按钮创建AlertDialog是和否.

这是我的代码:

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class DialogActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dialog);

    Button btnDialog= (Button) findViewById(R.id.btnDialog);
    btnDialog.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showDialogMessage();
        }
    });
}

private void showDialogMessage(){

    AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
    // Add the buttons
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            // User clicked OK button
        }
    });
    builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
        public …
Run Code Online (Sandbox Code Playgroud)

android themes android-alertdialog appcompatactivity

11
推荐指数
1
解决办法
2万
查看次数

java.lang.IllegalArgumentException:您需要将Theme.AppCompat主题(或后代)与设计库一起使用

我试图在本教程的帮助下从Material Design实现"带图像的灵活空间":

带有android设计支持库的工具栏动画

但我在布局预览中收到此渲染问题消息:

无法实例化以下类:

- android.support.design.widget.CoordinatorLayout(Open Class,Show Exception,Clear Cache) - android.support.design.widget.AppBarLayout(Open Class,Show Exception,Clear Cache)

我将Theme.AppCompat主题应用到我的应用程序中,但它会在每个其他活动中搞砸操作栏和外观.此外,它会在操作栏方法上引发错误,例如:

actionBar.setDisplayHomeAsUpEnabled(真);

将错误(粗略地)陈述为:

在null对象引用上调用setDisplayHomeAsUpEnabled(boolean)

此外Theme.AppCompat,在整个应用程序中使用预览屏幕会出现以下错误:

找不到以下类: - android.support.v7.internal.app.WindowDecorActionBar(修复构建路径,创建类)

因此,我不想Theme.AppCompat用于整个应用程序.然而,使用Theme.AppCompat了,我想用"与图像弹性空间"的具体活动设计不能解决CoordinatorLayoutAppBarLayout前面提到的问题.

请告诉我该怎么办!我已经在同一个问题上阅读了很多stackoverflow帖子,但它们对我不起作用!我重新启动了android studio并使我的缓存无效并重启了无数次!!

以下是我的依赖项 build.gradle

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-v4:23.0.1'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile project(':viewPagerIndicator')
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
}
Run Code Online (Sandbox Code Playgroud)

在手机上按原样运行应用程序会出现此错误:

java.lang.IllegalStateException:此Activity已经有一个由窗口装饰提供的操作栏.不要在主题中请求Window.FEATURE_SUPPORT_ACTION_BAR并将windowActionBar设置为false以使用工具栏.

将windowActionBar设置为false,如下所示:

<item name="windowActionBar">false</item>
Run Code Online (Sandbox Code Playgroud)

然后运行该应用程序会抛出此错误:

java.lang.RuntimeException:无法启动活动ComponentInfo {com.seven.actionbar/com.seven.actionbar.EventsDetailActivity}:java.lang.IllegalArgumentException:AppCompat不支持当前主题功能:{windowActionBar:false,windowActionBarOverlay:false ,android:windowIsFloating:false,windowActionModeOverlay:false,windowNoTitle:false}

以下是EventsDetailsActivity.java文件中的工具栏位:

    Toolbar toolbar;
    CollapsingToolbarLayout collapsingToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_eventsdetail); …
Run Code Online (Sandbox Code Playgroud)

java android android-theme material-design

9
推荐指数
1
解决办法
1万
查看次数

使用Robolectric测试ActionBarActivity时出错

我正在使用Robolectric来测试我的应用程序中的活动.该活动扩展了ActionBarActivity.当我测试活动时,我得到错误:"IllegalStateException:你需要在这个活动中使用Theme.AppCompat主题(或后代)."

我的测试环境是:Android Studio 0.8.6,Robolectric 2.4-SNAPSHOT,support-v4库版本20.0,appcompat-v7版本20.0.

现在为班级.活动 :

public class FilterActivity extends ActionBarActivity
Run Code Online (Sandbox Code Playgroud)

测试类:

@Config(emulateSdk = 18, manifest = "src/main/AndroidManifest.xml")
@RunWith(RobolectricTestRunner.class)
public class FilterActivityTest 
{
    private FilterActivity activity;

    @Before
    public void setUp() throws Exception
    {   
        activity = Robolectric.buildActivity(FilterActivity.class).create().get();
    }

    @After
    public void tearDown() throws Exception
    {
        activity.finish();
    }

    @Test
    public void testOnCreate()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

我从values文件夹中的styles.xml:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">

</style>
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:110)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:99)
at …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat robolectric android-actionbaractivity

8
推荐指数
1
解决办法
1143
查看次数

使所有活动全屏 - 没有标题栏没有活动栏

我需要从我正在使用的所有活动中删除操作栏/标题栏.目前我申请了

android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
Run Code Online (Sandbox Code Playgroud)

在Manifest文件中的活动但这只删除了上面说的主要活动其他活动保持不变.任何解决方案

活动下的完整代码:

<activity
            android:name="com.dss.ms.MainActivity"
            android:label="@string/app_name"            
            android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
Run Code Online (Sandbox Code Playgroud)

完整清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dss.ms"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="12"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
 >

        <meta-data
            android:name="com.google.android.gms.games.APP_ID"
            android:value="@string/app_id" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity
            android:name="com.dss.ms.MainActivity"
            android:label="@string/app_name"            
            >

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.com.dss.ms.Single"
            android:label="@string/title_activity_single" >
        </activity>
        <activity
            android:name="com.dss.ms.Index"
            android:label="@string/title_activity_index" >
        </activity>
        <activity
            android:name="com.dss.ms.da"
            android:label="@string/title_activity_players_2" >
        </activity>
        <activity
            android:name="com.dss.ms.FullscreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/title_activity_fullscreen"
            android:theme="@style/FullscreenTheme" >
        </activity>
        <activity
            android:name="com.dss.ms.Score"
            android:label="@string/title_activity_score" >
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

最终编辑--- …

xml android

-1
推荐指数
1
解决办法
2457
查看次数

无法启动活动 ComponentInfo 您需要对此活动使用 Theme.AppCompat 主题

为什么我无法开始我的活动?

package cse.svu;

/**
 * Created by DELL on 11/11/2014.
 */
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.Window;
import java.util.Timer;
import java.util.TimerTask;

public class splashscreen extends Activity {

    long delay=8000;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // Remove the Title Bar
            requestWindowFeature(Window.FEATURE_NO_TITLE);

            // Get the view from splash_screen.xml
            setContentView(R.layout.splash_screen);

            // Create a Timer
            Timer RunSplash = new Timer();

            // Task to do when the timer ends
            TimerTask ShowSplash = new TimerTask() {
                @Override
                public …
Run Code Online (Sandbox Code Playgroud)

android

-1
推荐指数
1
解决办法
6315
查看次数