¿Por qué MonoDroid no puede encontrar mis ensamblajes?

Hice una sencilla aplicación Android HelloWorld usando Xamarin Studio 4.2.3 que no hace nada excepto que imprime algún mensaje si un número aleatorio es mayor que 0.5. Funciona muy bien en un Nexus 4 y un Nexus 5.

Lo siguiente que hago es extraer el .dll con el código del apk de la aplicación (de la carpeta de ensamblajes) usando 7Zip. Uso de .Net Reflector y Reflexil Estoy modificando una sola instrucción, generalmente el brfalse.s que se genera por la instrucción IF en "if (rand.nextDouble ()> 0.5) {doStuff ()}" tal que se ramifica a la Instrucción justo delante de la llamada a doStuff (), haciendo efectivamente la instrucción IF inútil y asegurando que el método siempre se llama.

A continuación, estoy guardando el .dll parcheado, reemplazando el original en el .apk con el parcheado, firmo y zipalign el .apk y finalmente lo estoy instalando usando adb.

Cuando estoy lanzando la aplicación en mis teléfonos se bloquea directamente y LogCat muestra lo siguiente:

03-20 10:12:08.709: I/ActivityManager(764): Start proc HelloMonoLVL.HelloMonoLVL for activity HelloMonoLVL.HelloMonoLVL/hellomonolvl.hellomonolvl.TrialSplashScreen: pid=23099 uid=10128 gids={50128} 03-20 10:12:08.729: D/dalvikvm(23099): Trying to load lib /data/app-lib/HelloMonoLVL.HelloMonoLVL-1/libmonodroid.so 0x427154a0 03-20 10:12:08.729: D/dalvikvm(23099): Added shared lib /data/app-lib/HelloMonoLVL.HelloMonoLVL-1/libmonodroid.so 0x427154a0 03-20 10:12:08.739: W/libc(23099): WARNING: generic atexit() called from legacy shared library 03-20 10:12:08.759: W/monodroid-gc(23099): GREF GC Threshold: 46800 03-20 10:12:08.769: A/monodroid-assembly(23099): Coult not load assembly 'HelloMonoLVL' during startup registration. 03-20 10:12:08.769: A/monodroid-assembly(23099): This might be due to an invalid debug instalation. 03-20 10:12:08.769: A/monodroid-assembly(23099): A common cause is to 'adb install' the app directly instead of doing from the IDE. 03-20 10:12:08.789: I/ActivityManager(764): Process HelloMonoLVL.HelloMonoLVL (pid 23099) has died. 03-20 10:12:08.789: W/ActivityManager(764): Force removing ActivityRecord{42752a50 u0 HelloMonoLVL.HelloMonoLVL/hellomonolvl.hellomonolvl.TrialSplashScreen t238}: app died, no saved state 

Dado que esto no funcionó, usé el puerto C # de la LVL. Construido la aplicación de ejemplo de LVL, desplegado y funciona en los teléfonos. Volví a extraer el .dll con el código de verificación de la licencia, usando Reflexil cambié el código de un método, inyecté el .dll parcheado en el apk, firmado y zipaligned el apk. Una vez más no funciona, pero se bloquea en el lanzamiento y ahora obtener:

 03-20 10:21:19.049: D/dalvikvm(23507): Trying to load lib /data/app-lib/de.marius.lvl-1/libmonodroid.so 0x42711448 03-20 10:21:19.049: D/dalvikvm(23507): Added shared lib /data/app-lib/de.marius.lvl-1/libmonodroid.so 0x42711448 03-20 10:21:19.069: A/MonoDroid(23507): No assemblies found in '/data/data/de.marius.lvl/files/.__override__' or '/storage/emulated/0/Android/data/de.marius.lvl/files/.__override__'. Assuming this is part of Fast Deployment. Exiting... 03-20 10:21:19.079: I/ActivityManager(764): Process de.marius.lvl (pid 23507) has died. 03-20 10:21:19.079: W/ActivityManager(764): Force removing ActivityRecord{42bc3c60 u0 de.marius.lvl/.TrialSplashScreen t239}: app died, no saved state 

No parece hacer ninguna diferencia si estoy usando el apk que genera Xamarin en el modo de lanzamiento o modo de depuración. Intenté ambos usando las versiones del apk de la carpeta del compartimiento del proyecto y los que tiré del teléfono con el tirón del adb.

Soy nuevo en Xamarin así que tal vez mi enfoque es ingenuo. ¿Hay algo como un cheque hash que mi patched .dlls no pasa? Vi que Reflexil tiene una opción para eliminar StrongNames, lo intenté pero no parecía hacer ninguna diferencia (pero debo admitir que no sé cómo funcionan).

¿Es posible lo que estoy tratando de hacer? Cualquier ayuda es mucho apreciar.

Desinstale todos los paquetes instalados en su proyecto, incluidas las bibliotecas de soporte de Android, como las bibliotecas de soporte de Android.Support.v4 y limpie la solución.

A continuación, vuelva a instalar todos los paquetes necesarios y admita bibliotecas y reconstruya su solución. Puede ayudarle a resolver su consulta.

  • Zxing integración en la aplicación monodroid
  • Ejecutar código cuando se inicia y existe la aplicación para Android
  • No encontró la clase "mono.android.app.Application"
  • System.ObjectModel Advertencia Xamarin no se ejecuta en Android
  • ¿Cómo obtengo la dirección MAC y el dispositivo Android con 6.0 o superior en c #?
  • OnConfigurationChanged no se llama en mono android
  • Android TextView defStyle parámetro ignorado?
  • Protección de bases de datos SQLite locales (aplicación Android)
  • VM con la versión 1.6.0 no tiene soporte multidex: No se puede encontrar la aplicación Mono.Android.Platform.ApiLevel_23 o Xamarin.Android.Platform
  • Borrar selección de SingleChoice ListView
  • El modo de bloqueo de DrawerLayout no funciona como se esperaba
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.