*1. `unzip -l your.package-Signed.apk`: Do you have:

       lib/armeabi/libSQLite3.so
       lib/armeabi/libmonodroid.so
       lib/armeabi-v7a/libmonodroid.so *

The apk lib folder content is this:

       lib/armeabi/libSQLite3.so
       lib/armeabi/libmonodroid.so
       lib/armeabi-v7a/libmonodroid.so
       lib/x86/ libmonodroid.so

Out of curiosity may I ask why the .apk contains libs for the
armeabi-v7a and x86 version? The project is configured to support only *
armeabi*!

*2. Is your target device an armeabi-v7a device?
*
yes, it's a galaxy S2 and it support v7a.

*I need to investigate this further, but what appears to be happening is
that Android is now only installing the abi binaries, and not falling back
to the abi2 binaries. For example, if your device is armeabi-v7a and your
.apk contains lib/armeabi-v7a/libmonodroid.so, it'll extract
lib/armeabi-v7a/libmonodroid.so but NOT lib/armeabi/libSQLite3.so. I don't
know why this would be happening. :-(
*
You got it! It seems exactly like you said. I've changed my .csproj file
adding the new <ItemGroup> node with <Abi>armeabi-v7a</Abi> and now it
works!

I would prefer to have only  *armeabi* libs in my project, this because i
want to support "legacy" devices without manage two copies of the lib, so I
hope the new release of M4A fix this!

thanks for your help!

The device is a Galaxy Samsung SII, and support  *armeabi-v7a*
On Tue, Jun 19, 2012 at 4:51 PM, Jonathan Pryor <j...@xamarin.com> wrote:

> On Jun 19, 2012, at 8:32 AM, Francesco Colombo wrote:
> > Just updated to the last version of M4A version and......my app is
> broken! :(
> >
> > I'm using an external reference to a SQL Lite native library, compiled
> with FTS4 support. It worked like a charm, befrore updating, but NOW I'm
> getting a System.DllNotFoundException. :(
> >
> > System.DllNotFoundException: libSQLite3.so
> >   at (wrapper managed-to-native) AdMaiora.Core.Data.SQLite.SQLite3.Open
> (string,intptr&) <IL 0x00011, 0x00090>
>
> Diagnostic checks:
>
> 1. `unzip -l your.package-Signed.apk`: Do you have:
>
>        lib/armeabi/libSQLite3.so
>        lib/armeabi/libmonodroid.so
>        lib/armeabi-v7a/libmonodroid.so
>
> 2. Is your target device an armeabi-v7a device?
>
>        adb shell getprop ro.product.cpu.abi
>
> I need to investigate this further, but what appears to be happening is
> that Android is now only installing the abi binaries, and not falling back
> to the abi2 binaries. For example, if your device is armeabi-v7a and your
> .apk contains lib/armeabi-v7a/libmonodroid.so, it'll extract
> lib/armeabi-v7a/libmonodroid.so but NOT lib/armeabi/libSQLite3.so. I don't
> know why this would be happening. :-(
>
> The workaround is easy, though increases space use: add a
> lib/armeabi-v7a/libSQLite3.so file by updating your .csproj:
>
>        <ItemGroup>
>                <AndroidNativeLibrary Include="libSQLite3.so">
>                        <Abi>armeabi-v7a</Abi>
>                </AndroidNativeLibrary>
>        </ItemGroup>
>
> Thanks,
>  - Jon
>
> _______________________________________________
> Monodroid mailing list
> Monodroid@lists.ximian.com
>
> UNSUBSCRIBE INFORMATION:
> http://lists.ximian.com/mailman/listinfo/monodroid
>
_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to