La actividad no se puede asignar a la actividad

He leído varios posts durante los últimos días y no puedo entender cuál es mi problema. He comprobado los nombres de la actividad y son iguales. También he comprobado mi manifiesto y tengo el . En frente de las actividades también.

Aquí está mi archivo logcat:

 02-23 16:48:22.438 1508-1508/com.pctoolman.planme.app E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.pctoolman.planme.app/com.pctoolman.planme.app.PlanMeMainActivity}: java.lang.ClassCastException: com.pctoolman.planme.app.PlanMeMainActivity cannot be cast to android.app.Activity at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassCastException: com.pctoolman.planme.app.PlanMeMainActivity cannot be cast to android.app.Activity at android.app.Instrumentation.newActivity(Instrumentation.java:1061) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 

AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pctoolman.planme.app" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.pctoolman.planme.app.PlanMeMainActivity" 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.pctoolman.planme.app.NewEventSetupActivity" android:label="@string/setup"> </activity> </application> 

PlanMeMainFragment.java

 package com.pctoolman.planme.app; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; public class PlanMeMainFragment extends Fragment { private Button mNewButton, mExistingButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.planme_main_fragment, parent, false); mNewButton = (Button)v.findViewById(R.id.new_event_button); mNewButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent myIntent = new Intent(getActivity(), NewEventSetupActivity.class); getActivity().startActivity(myIntent); } }); return v; } } 

PlanMeMainActivity.java

 package com.pctoolman.planme.app; import android.support.v4.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; public class PlanMeMainActivity extends Fragment { public Fragment createFragment() { return new PlanMeMainFragment(); } } 

Cambiar esta línea

 public class PlanMeMainActivity extends Fragment { 

a

 public class PlanMeMainActivity extends FragmentActivity { 

Aquí puede encontrar todo lo que necesita saber acerca de las actividades y aún más. Aclamaciones

¿Dónde te equivocas?

  <activity android:name="com.pctoolman.planme.app.PlanMeMainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

¿Por qué te equivocas?

El error es que agregaste el Fragmento en el Manifiesto como Actividad. Sin embargo los fragmentos no son actividades

¿Qué debes hacer?

Debe agregar el fragmento en una actividad y luego definir esa actividad en el manifiesto

Tu PlanMeMainActivity no es una Activity ; Es un Fragment . Su actividad debe ser una actividad, y luego puede agregar fragmentos a ella.

Tu PlanMainActivity extiende un fragmento. No se puede enviar un fragmento a una actividad

Clean Project resolvió este error. La causa raíz del error en mi caso fue diferente, pero recibí el mismo error "Actividad no se puede asignar a la actividad".

Me enfrenté a este problema después de copiar existente (perfectamente trabajando) Android Project para crear uno nuevo. Después de copiar el proyecto, AppCompatActivity no fue reconocido causando que todas las actividades del archivo de manifiesto de Android mostraran el error "activity-is-not-assignable-to-activity".
Lo cual se solucionó limpiando el proyecto.

Finalmente, descubro que la solución es añadir la siguiente línea en sus dependencias:

compile 'com.android.support:support-v4:23.2.0'

Simplemente borre la carpeta ".gradle" de su proyecto y presione el botón de sincronización. Ha resuelto mi problema

  • ¿Cómo obtengo una variable de un bloque try / catch?
  • ¿Cómo uso el procesador de anotación Java personalizado en Gradle?
  • Realm ORM: cómo tratar con Maps?
  • Espresso 2.0 - Método anotado con @Test dentro de la clase extendiendo junit3 testcase
  • RxJava / RxBinding: cómo manejar los errores en RxView
  • Comportamiento extraño al transmitir contenido con Android MediaPlayer en HTC Desire con Android 2.2
  • Leer correos electrónicos de Gmail con SDK de Android
  • Default Schedulers para rxjava en Android
  • ¿Debo evitar estrictamente el uso de enums en Android?
  • ¿Quieres encontrar la longitud focal primero entonces la distancia de la cara detectada en tiempo real utilizando opencv android
  • Cómo verificar un mensaje de brindis en selendroid
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.