Ich versuche, native Bibliothek in meine Xamarin Android App zu importieren. Ich habe die Datei test.so erstellt und den entsprechenden Dllopen-Code hinzugefügt. Das Problem ist, wenn ich versuche, die Anwendung bereitzustellen, bekomme ich einen Fehler "DllImport error loading library" geworfen. Hier ist der Fehler vollständig.Xamarin Android: Fehler einschließlich nativer Bibliothek in Anwendung
> DllImport attempting to load: 'test'. 07-20 11:07:26.428 D/Mono
> (11429): DllImport error loading library
> '/storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest':
> 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest"
> not found'. 07-20 11:07:26.428 D/Mono (11429): DllImport error
> loading library
> '/storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest.so':
> 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest.so"
> not found'. 07-20 11:07:26.428 D/Mono (11429): DllImport error
> loading library '/system/lib/libtest': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//system/lib/libtest"
> not found'. 07-20 11:07:26.428 D/Mono (11429): DllImport error
> loading library '/system/lib/libtest.so': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//system/lib/libtest.so"
> not found'. 07-20 11:07:26.428 D/Mono (11429): DllImport error
> loading library 'libtest': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/libtest" not found'.
> 07-20 11:07:26.428 D/Mono (11429): DllImport error loading library
> 'libtest.so': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/libtest.so" not found'.
> 07-20 11:07:26.428 D/Mono (11429): DllImport error loading library
> 'test': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/test" not found'. 07-20
> 11:07:26.438 D/Mono (11429): DllImport error loading library
> '/storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest':
> 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest"
> not found'. 07-20 11:07:26.438 D/Mono (11429): DllImport error
> loading library
> '/storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest.so':
> 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest.so"
> not found'. 07-20 11:07:26.438 D/Mono (11429): DllImport error
> loading library '/system/lib/libtest': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//system/lib/libtest"
> not found'. 07-20 11:07:26.438 D/Mono (11429): DllImport error
> loading library '/system/lib/libtest.so': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//system/lib/libtest.so"
> not found'. 07-20 11:07:26.438 D/Mono (11429): DllImport error
> loading library 'libtest': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/libtest" not found'.
> 07-20 11:07:26.438 D/Mono (11429): DllImport error loading library
> 'libtest.so': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/libtest.so" not found'.
> 07-20 11:07:26.438 D/Mono (11429): DllImport error loading library
> 'libtest': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/libtest" not found'.
> 07-20 11:07:26.438 W/Mono (11429): DllImport unable to load library
> 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/libtest" not found'.
> 07-20 11:07:26.438 D/Mono (11429): DllImport attempting to load:
> 'test'. 07-20 11:07:26.438 D/Mono (11429): DllImport error loading
> library
> '/storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest':
> 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest"
> not found'. 07-20 11:07:26.438 D/Mono (11429): DllImport error
> loading library
> '/storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest.so':
> 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//storage/emulated/0/Android/data/XammarinDemo.XammarinDemo/files/.__override__/libtest.so"
> not found'. 07-20 11:07:26.438 D/Mono (11429): DllImport error
> loading library '/system/lib/libtest': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//system/lib/libtest"
> not found'. 07-20 11:07:26.438 D/Mono (11429): DllImport error
> loading library '/system/lib/libtest.so': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm//system/lib/libtest.so"
> not found'. 07-20 11:07:26.438 D/Mono (11429): DllImport error
> loading library 'libtest': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/libtest" not found'.
> 07-20 11:07:26.438 D/Mono (11429): DllImport error loading library
> 'libtest.so': 'dlopen failed: library
> "/data/app/XammarinDemo.XammarinDemo-1/lib/arm/libtest.so" not found'.
folgte ich den Prozess wie hier https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/ beschrieben. Ich habe bestätigt, dass der libtest.so in der apk enthalten ist, indem ich ihn entzippe, aber es scheint, dass Android Probleme hat, die .so-Datei zu finden. Wie kann ich dieses Problem beheben?
Eine häufige Ursache für dieses Problem ist, wenn die Bibliothek nicht für die Architektur des Testgeräts oder Emulators bereitgestellt wurde. Es ist wichtig, Pfad-Sniffing zu verwenden oder das Element ' 'entsprechend für jede Bereitstellungsarchitektur zu setzen. –
Haben Sie das richtige 'Build Action' Set? Zweitens, ist das '.so' für die richtige Architektur enthalten? http://ph0b.com/android-abis-and-so-files/ –
@ BrendanZagaeski Ich teste auf einem HTC One Telefon und ich habe die libtest.so unter dem armeabi-v7-Ordner gemäß den Anweisungen hier. https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/ Ich habe auch versucht, es unter einem Ordner namens armeabi, beide nicht funktioniert – Oyebisi