Translate

jueves, 7 de agosto de 2014

Error: android.app.NativeActivity.onCreate IllegalArgumentException

Introducción


A veces sucede que cuando mandamos nuestra aplicación, en mi caso hecha en Unity3D  como apk al Market (Ahora Google Play) nos empiezan a llegar multiples errores que dicen en el título:

java.lang.IllegalArgumentException
en android.app.NativeActivity.onCreate

y en el contenido viene algo similar a esto:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nextia.tapa1/com.unity3d.player.UnityPlayerNativeActivity}: java.lang.IllegalArgumentException: Unable to find native library: main
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1755)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1774)
at android.app.ActivityThread.access$1500(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1001)
at android.os.Handler.dispatchMessage(Handler.java:130)
at android.os.Looper.loop(SourceFile:351)
at android.app.ActivityThread.main(ActivityThread.java:3841)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:538)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Unable to find native library: main
at android.app.NativeActivity.onCreate(NativeActivity.java:218)
at com.unity3d.player.UnityPlayerNativeActivity.onCreate(Unknown Source)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1719)


Solución


Primero debemos buscar absolutamente todos los manifests de nuestro proyecto , si está usando eclipse, normalmente debería de ser un único archivo.

Deberemos abrir TODOS los archivos y localizar el tag( etiqueta ) <application

Deberemos agregar el atributo android:hasCode="true"



Explicación


El error en sí nos dice que hubo un problema al crear la aplicación nativa, y esto es en los dispositivos de baja gama que tratan de correr nuestra aplicación como nativa para aumentar su velocidad de ejecución. En el caso de Unity android, se agregan librerías dll propias de la plataforma .Net, por lo que deberemos de agregar este tag prácticamente siempre.

Fuentes


Libro programming android
https://groups.google.com/forum/#!topic/android-ndk/G6GDWJEvbrI

No hay comentarios:

Publicar un comentario