No puedo crear una instancia de una actividad secundaria. En el logcat veo esta línea:newInstance failed: no <init>
01-22 15:14:38.906: DEBUG/dalvikvm(411): newInstance failed: no <init>()
Esta es la línea en dalvik que genera ese logcat.
/*
* public T newInstance() throws InstantiationException, IllegalAccessException
*
* Create a new instance of this class.
*/
static void Dalvik_java_lang_Class_newInstance(const u4* args, JValue* pResult)
...
/* find the "nullary" constructor */
init = dvmFindDirectMethodByDescriptor(clazz, "<init>", "()V");
if (init == NULL) {
/* common cause: secret "this" arg on non-static inner class ctor */
LOGD("newInstance failed: no <init>()\n");
dvmThrowExceptionWithClassMessage("Ljava/lang/InstantiationException;",
clazz->descriptor);
RETURN_VOID();
}
Aquí está la acción que tomo para activar la actividad en un controlador de temporizador.
// move on to Activation
// ePNSplash is this activity a splash screen
Intent i = new Intent (ePNSplash.this, Activation.class);
startActivity (i);
La actividad que estoy tratando de empezar es de 2 tirantes encima Actividad
Aquí es la primera extensión
public abstract class AndroidScreen extends Activity {
....
public AndroidScreen (String title, AndroidScreen parent, AndroidScreen main)
{
super();
myGlobals = Globals.getGlobals();
myGlobals.myLogger.logString("AndroidScreen: 001");
myParent = parent;
myMainScreen = main;
myTitle = title;
}
Esto es sólo el constructor, que parece ser la parte que tiene el problema. Aquí está la segunda extensión y la clase que intento crear.
public class Activation extends AndroidScreen {
public Activation (String title, AndroidScreen parent, AndroidScreen main)
{
super (title, parent, main);
}
Estoy absolutamente confundido, tengo un constructor, me aseguro que yo llamo mis súper constructores, lo que podría estar mal?
Gracias
Julian
Eso funcionó, gracias. – Bodger
Mi problema era un servicio de intendencia que la clase abstracta no define un constructor predeterminado, solo un constructor con un argumento (nombre de cadena). Como resultado, el compilador me confundió al implementar un constructor predeterminado y lo dejé. Cuando lo agregué como MyIntentService() {super (nulo); } Todo funcionó. Esto fue tan contra intuitivo, gracias por los q & a en esta excepción. – mobibob
¡No podía creer lo que veía cuando esto funcionaba! Instalé y preinflaré fragmentos y agregué un arg cero cuando lo leí y funcionó. ¡Por qué podría haberlo votado aún MÁS! –