SearchView on support.v7.appcompat problema de la biblioteca: el fondo de 9 parches predeterminado no se procesa correctamente

Estoy desarrollando una aplicación con ActionBar utilizando la biblioteca support.v7.appcompat. La barra de acción funciona, se muestra el SearchView, se muestra la pista. El único problema es que el fondo del SearchView no se está estropeando correctamente. Insead de lo habitual, parece grande y con las 9 líneas parche negro.

Utilizando:

  • Desarrollando desde la línea de comandos, usando ant debug para compilar.
  • En Linux Mageia 3, ant versión: Apache Ant (TM) versión 1.8.4 compilado el 11 de enero de 2013
  • Enlace a la biblioteca con la línea project.properties:

Android.library.reference.1 = .. / .. / .. / .. / .. / sdk / extras / android / support / v7 / appcompat /

  • Uso de @ style / Theme.AppCompat.Light
  • Probado en el dispositivo con CM10-1, en el dispositivo con stock 4.1, y el emulador con API 8 (Android 2.2). El mismo resultado en todos los dispositivos.

Captura de pantalla:

Introduzca aquí la descripción de la imagen

Código:

DiccionariCatala.java (actividad principal):

 import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.SearchView; import android.support.v4.view.MenuItemCompat; import android.app.Activity; import android.app.SearchManager; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.MenuInflater; public class DiccionariCatala extends ActionBarActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_actions, menu); SearchManager SManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); MenuItem searchMenuItem = menu.findItem(R.id.action_search); SearchView searchViewAction = (SearchView) MenuItemCompat.getActionView(searchMenuItem); searchViewAction.setSearchableInfo(SManager.getSearchableInfo(getComponentName())); searchViewAction.setIconifiedByDefault(false); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()) { case R.id.action_search: //openSearch(); return true; default: return super.onOptionsItemSelected(item); } } } 

Menu_actions.xml (menú xml)

 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:diccionaricatala="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/action_search" android:title="@string/action_search_title" diccionaricatala:showAsAction="ifRoom" diccionaricatala:actionViewClass="android.support.v7.widget.SearchView" /> </menu> 

AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mypackage.apps" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16"/> <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:theme="@style/Theme.AppCompat.Light"> <activity android:name="DiccionariCatala" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> </activity> </application> </manifest> 

Proyecto.properties

 target=android-16 android.library.reference.1=../../../../../sdk/extras/android/support/v7/appcompat/ 

Cualquier ayuda me gustaría mucho apreciated. No puedo encontrar nada malo, y también hay el hecho extraño que despide esto, todo lo demás funciona. Gracias.

Ok, quiero matarme. Lo he arreglado. No sé cómo. No puedo reproducir el error de nuevo!

Lo que creo que ha arreglado el error: He añadido la importación android.support.v7.app.ActionBar;

Entonces lo he quitado para reproducir el fallo, pero no está detrás.

También desinstalé Build-tools 18.0.1 (que está en cursiva y me hizo sospechar), así que pensé que podría ser la fuente del error. Pero lo he reinstalado, y tampoco puedo reproducir el error.

No sé qué más podría ser. De todos modos, avanzando … (vista)

Editar:

Sucedió de nuevo, y esta vez he podido reducirlo. Resulta que es un error de Build Tools v18. *, La degradación a v17 resuelve el problema.

Esto suele ser un problema donde el archivo de recursos (R) no se ha generado correctamente y algunas referencias están desalineadas.

Hacer una limpieza suele ser una buena solución, ya que regenera este archivo. Esto es lo que hizo inadvertidamente al reinstalar.

Tuve el mismo problema con las herramientas de compilación 19.0.1, pero la nueva versión 19.0.3 arregló el problema. Pruébalo, espero que te ayude también.

  • Soporte de la barra de acciones v7 android
  • La importación android.support.v7.app no ​​se puede resolver
  • Java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompat
  • Actualizar la biblioteca de soporte 23.2.0 generar error
  • Error de representación; No se pudo resolver @ id / search_edit_frame
  • Error de Android Studio con VectorDrawable (la nueva biblioteca Support 23.2.0)
  • En la aplicación android el método Toolbar.setTitle no tiene efecto - el nombre de la aplicación se muestra como título
  • Cómo manejar onContextItemSelected en una actividad de múltiples fragmentos?
  • Androide, diseño, biblioteca, gradle, nulo, puntero, excepción
  • Actualizar Android Support Library a 23.2.0 causa error: XmlPullParserException Archivo XML binario línea # 17 tag <vector> requiere viewportWidth> 0
  • Diferencia entre android-support-v7-appcompat y android-support-v4
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.