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:
- ¿Qué utilizar en lugar de getSupportActionBar () en la Biblioteca 22?
- Actividad, AppCompatActivity, FragmentActivity y ActionBarActivity: ¿Cuándo utilizar qué?
- ¿Cómo setContentView antes de super.onCreate mientras se utiliza AppCompat v22.1.0?
- Receptor esperado del tipo, pero tiene android.support.v7.widget.TintContextWrapper
- Cambiar el color del texto del título para ActionBar en el tema AppCompatActivity
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') }
- AppCompatActivity en lugar de Actividad o FragmentActivity
- Los botones ActionBar personalizados de AppCompatActivity no aparecen en Android 4.1.2
- ¿Cuál es la mejora de AppCompatActivity sobre ActionBarActivity?
- Cómo quitar la barra de título de Actividad que extiende ActionBarActivity o AppcompatActivity con tema de diálogo
- Obtener excepción: java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV14
- ¿Cómo usar AppCompatActivity con Fabric para obtener Timeline?
- Uso de las clases Fragment y AppCompatActivity juntos
- No solicite problema Window.FEATURE_ACTION_BAR
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'
- ¿Es posible llamar manualmente onCreateView en un fragmento?
- ¿Cómo crear una vista previa de vídeo en Android?