"Necesita usar un tema Theme.Appcompat …" al probar ActionBarActivity, pero estoy

Tengo un problema al probar una aplicación que utiliza ActionBarActivity de android-support-v7-appcompat a través de la prueba de Android JUnit en Eclipse. Cuando se ejecuta en un emulador o dispositivo todo parece funcionar bien.

Intenté usar una aplicación simulada como en ActivityUnitTestCase y startActivity con ActionBarActivity y cambiar el tema principal en valores-v11, etc. como se sugiere en ActionBarCompat: java.lang.IllegalStateException: Necesita usar un Theme.AppCompat pero todavía no funciona.

Tienes que usar un tema Theme.AppCompat (o descendiente) con esta actividad no da una respuesta tampoco, als la persona que hizo la pregunta ni tenía un Theme.AppCompat especificado en su manifiesto (lo que hago), ni realmente quiere Para extender ActionBarActivity (lo que hago). Su solución era simplemente extender la Actividad en su lugar.

¿Qué estoy haciendo mal?

Este es el error que recibo (Failure-Trace de la Junit-Window):

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) 

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 = (TextView) findViewById(android.hello.R.id.tv); tv.setText("Hello, Android"); } } 

HelloWorldApplication.java

 package android.hello; import android.app.Application; import android.util.Log; public class HelloWorldApplication extends Application { @Override public void onCreate() { super.onCreate(); setTheme(R.style.Theme_AppCompat); } } 

Hola Manifiesto Mundial:

 ... <activity android:name=".HelloWorldActivity" android:label="@string/app_name" android:theme="@style/Theme.AppCompat"> ... </activity> .... 

Del paquete de prueba:

HelloWorldActivityTest.java

 package android.hello.test; import android.hello.HelloWorldActivity; import android.content.Intent; import android.test.ActivityUnitTestCase; import android.widget.TextView; public class HelloWorldActivityTest extends ActivityUnitTestCase<HelloWorldActivity> { HelloWorldActivity helloWorldActivity; TextView textView; public HelloWorldActivityTest() { super(HelloWorldActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); // Starts the MainActivity of ScanMe startActivity(new Intent(getInstrumentation().getTargetContext(), HelloWorldActivity.class), null, null); // Reference to the MainActivity of ScanMe helloWorldActivity = (HelloWorldActivity)getActivity(); // Reference to the code input-TextEdit of the MainActivity of ScanMe textView = (TextView) helloWorldActivity.findViewById(android.hello.R.id.tv); } @Override protected void tearDown() throws Exception { super.tearDown(); } public void testPreconditions() throws Exception { assertNotNull(textView); } public void testInputCodeField(){ String actual=textView.getText().toString(); String expected = "Hello, Android"; assertEquals(expected,actual ); } } 

Add android:theme="@style/Theme.AppCompat" bajo la aplicación en su manifest.xml

Hay dos cosas que intentaría:

  • Quite el setTheme de onCreate, es redundante con el manifiesto y puede conducir a la confusión
  • Establecer el tema en la aplicación en lugar del nivel de actividad en el manifiesto
  • GetAction () sólo da ACTION_DOWN
  • ¿Hay una necesidad de utilizar super.onActivityResult () en onActivityResult ()?
  • Countdowntimer en minutos y segundos
  • ¿Cómo convertir una cadena a UTF-8 en Android?
  • Compra en la aplicación de Android NullPointerException
  • Cómo agregar una segunda lista desplegable a la barra de acción en Android Honeycomb?
  • ¿Cómo decirle a ProGuard que ofusque métodos y nombres de clase?
  • XML vs setImageDrawable / setImageBitmap
  • ¿Cómo hacer EditText que no se puede editar?
  • Control de un motor con un dispositivo Android
  • Cómo encontrar la categoría de aplicación instalada de PackageInfo en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.