AppcompatActivity Error con el estudio de Android

Estoy recibiendo este error al crear una aplicación Android con Android Studio:

24192-24192/com.mkapp.apps.demo1 W/dalvikvm﹕ VFY: unable to find class referenced in signature (Landroid/os/PersistableBundle;) 08-20 10:53:23.605 24192-24192/com.mkapp.apps.demo1 I/dalvikvm﹕ Could not find method android.support.v7.app.AppCompatActivity.onCreate, referenced from method com.mkapp.apps.demo1.TourActivity.onCreate 08-20 10:53:23.605 24192-24192/com.mkapp.apps.demo1 W/dalvikvm﹕ VFY: unable to resolve virtual method 8393: Landroid/support/v7/app/AppCompatActivity;.onCreate (Landroid/os/Bundle;Landroid/os/PersistableBundle;)V 08-20 10:53:23.605 24192-24192/com.mkapp.apps.demo1 D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000 

Mis dependencias:

  compile 'com.android.support:support-v4:22.2.1' compile 'com.google.android.gms:play-services:7.3.0' compile 'com.android.support:appcompat-v7:22.1.0+' compile 'com.android.support:multidex:1.0.1' 

muchas gracias por su ayuda

Las actividades antiguas que heredan de AppcompatActivity funcionan bien. Pero si creo uno nuevo, consigue el error. Aquí está mi gradle.build:

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.0" defaultConfig { applicationId "com.mkapp.apps.demo1" minSdkVersion 10 targetSdkVersion 22 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } multiDexEnabled true } dexOptions { incremental true javaMaxHeapSize "4g" } packagingOptions { exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { compile project(':photocollage') compile project(':gWFacebookSDK') // compile project(':listViewAnimation') compile 'com.google.android.gms:play-services:7.3.0' compile 'com.android.support:appcompat-v7:22.1.0' compile 'com.android.support:multidex:1.0.1' compile files('libs/aws-android-sdk-2.1.0-core.jar') compile files('libs/aws-android-sdk-2.1.0-sns.jar') compile files('libs/dexmaker-1.1.jar') compile files('libs/dexmaker-mockito-1.1-custom.jar') // compile files('libs/listviewanimations_lib-core_3.1.0.jar') compile files('libs/signpost-commonshttp4-1.2.1.1.jar') compile files('libs/signpost-core-1.2.1.1.jar') compile files('libs/signpost-jetty6-1.2.1.1.jar') compile files('libs/twitter4j-core-4.0.1.jar') compile files('libs/universal-image-loader-1.9.3.jar') } 

Tiene este problema porque está intentando utilizar onCreate (Bundle savedInstanceState, PersistableBundle persistentState) , pero este método sólo está disponible desde el nivel 21 de la API.

Puedo reproducir el problema con este código de ejemplo en Android 4.4:

 public class TourActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState, new PersistableBundle()); } @Override public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { super.onCreate(savedInstanceState, persistentState); } } 

Y el problema se resuelve eliminando cada aparición de PersistableBundle :

 public class TourActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } } 

Compruebe dónde utiliza PersistableBundle en su TourActivity y elimínelo o actualice su respuesta con el código de su actividad.

Actualice su biblioteca de soporte a 23 y su compileSdkVersion a 23 en build.gradle.

 compileSdkVersion 23 ... compile 'com.android.support:support-v4:23.0.0' compile 'com.android.support:appcompat-v7:23.0.0' 

A continuación, sincronice su proyecto con archivos gradle.

Además, Google Play Services es ahora 7.8.0

El problema es que su TourActivity está utilizando una clase disponible sólo desde el nivel 21 de la API PersistableBundle . La pregunta aquí es por qué está haciendo eso.

Recuerde que una nueva actividad tiene que heredar de AppCompatActivity también.

Pregunta rápida, ¿está anulando public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) en la actividad problemática? Si lo está haciendo probablemente está guardando una referencia a PersistableBundle que no está disponible en el dispositivo / emulador. Trate de eliminarlo si no está haciendo nada allí o comentario para probar …

Primero, actualice sus bibliotecas a las últimas versiones. A continuación, limpie y reconstruya su proyecto.

Además, si se trata de una lista completa de bibliotecas que incluye:

  compile 'com.android.support:support-v4:22.2.1' compile 'com.google.android.gms:play-services:7.3.0' compile 'com.android.support:appcompat-v7:22.1.0+' compile 'com.android.support:multidex:1.0.1' 

Entonces usted realmente no necesita incluir este

  compile 'com.android.support:multidex:1.0.1' 

Tuve un error como ese y si quieres resolver, tienes que cambiar de esta manera

 compileSdkVersion 22 

y

 compile 'com.android.support:appcompat-v7:22.0.0' 

Tienes que cambiar tu app build.gradle esta manera:

 compile 'com.android.support:appcompat-v7:22.1.0+' 

a

 compile 'com.android.support:appcompat-v7:20.0.0' 
  • ¿Cuál es la forma correcta de usar la barra de herramientas y SwipeRefreshLayout?
  • Android Volver Flecha en la barra de herramientas (AppCompatActivity)
  • Cómo mostrar el elemento de menú con el icono y el texto en AppCompatActivity
  • ¿Qué debería extender mi actividad cuando minSdkVersion de la aplicación es 21?
  • Java.lang.NoSuchMethodError: No hay método estático setOnApplyWindowInsetsListener
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.