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
[email protected]

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

Reply via email to