在我们的 Xamarin Android 项目中,我们正在尝试从 sqlite-net 切换到官方 sqlite-net-pcl 包。
但是,在创建新的 SQLiteConnection 后进行此切换后,我收到以下异常:
“SQLite.SQLiteConnection”的类型初始值设定项引发异常。
---> System.DllNotFoundException: e_sqlite3
完整异常:
Xamarin 引起的:android.runtime.JavaProxyThrowable:
System.TypeInitializationException:类型初始值设定项
“SQLite.SQLiteConnection”引发异常。 --->
System.DllNotFoundException:e_sqlite3 at(包装器
托管到本机)
SQLitePCL.SQLite3Provider_e_sqlite3+NativeMethods:sqlite3_libversion_number
() 在
SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number
() [0x00000] 在 :0 处
SQLitePCL.raw.SetProvider(SQLitePCL.ISQLite3Provider imp)[0x00000]
在 :0 处
SQLitePCL.Batteries_V2.Init()[0x0000d]中
:0 在
SQLite.SQLiteConnection..cctor() [0x00000] 中
/Users/fak/Dropbox/Projects/sqlite-net/src/SQLite.cs:171 --- 结束
内部异常堆栈跟踪 --- at
mono.android.view.View_OnClickListenerImplementor.n_onClick(本机
方法)在
mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:30)
在 android.view.View.performClick(View.java:4780) 处
android.view.View$PerformClick.run(View.java:19866) at
android.os.Handler.handleCallback(Handler.java:739) 在
android.os.Handler.dispatchMessage(Handler.java:95) 在
android.os.Looper.loop(Looper.java:135) 位于
android.app.ActivityThread.main(ActivityThread.java:5254) 在
java.lang.reflect.Method.invoke(本机方法) at
java.lang.reflect.Method.invoke(Method.java:372) 在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
在日志中我可以看到以下信息:
12-01 10:43:05.356 D/Mono (11194):DllImport 尝试加载:
'e_sqlite3'。 12-01 10:43:05.358 D/Mono (11194): DllImport 错误
加载库
'/storage/emulated/0/Android/data/com.psonar.android/files/。override/libe_sqlite3':
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/.override/libe_sqlite3"
未找到'。 12-01 10:43:05.360 D/Mono (11194): DllImport 错误
加载库
'/storage/emulated/0/Android/data/com.psonar.android/files/。override/libe_sqlite3.so':
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/.override/libe_sqlite3.so"
未找到'。 12-01 10:43:05.360 D/Mono (11194): DllImport 错误
加载库 '/system/lib/libe_sqlite3': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3”不是
成立'。 12-01 10:43:05.360 D/Mono (11194): DllImport 加载错误
库 '/system/lib/libe_sqlite3.so': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”
未找到'。 12-01 10:43:05.360 D/Mono (11194): DllImport 错误
加载库 'libe_sqlite3': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”未找到。
12-01 10:43:05.361 D/Mono (11194): DllImport 加载库时出错
'libe_sqlite3.so': 'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so”未找到。
12-01 10:43:05.361 D/Mono (11194): DllImport 加载库时出错
'e_sqlite3': 'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/e_sqlite3”未找到。 12-01
10:43:05.362 D/Mono (11194): DllImport 加载库时出错
'/storage/emulated/0/Android/data/com.psonar.android/files/。override/libe_sqlite3':
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/.override/libe_sqlite3"
未找到'。 12-01 10:43:05.364 D/Mono (11194): DllImport 错误
加载库
'/storage/emulated/0/Android/data/com.psonar.android/files/。override/libe_sqlite3.so':
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/.override/libe_sqlite3.so"
未找到'。 12-01 10:43:05.364 D/Mono (11194): DllImport 错误
加载库 '/system/lib/libe_sqlite3': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3”不是
成立'。 12-01 10:43:05.364 D/Mono (11194): DllImport 加载错误
库 '/system/lib/libe_sqlite3.so': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”
未找到'。 12-01 10:43:05.364 D/Mono (11194): DllImport 错误
加载库 'libe_sqlite3': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”未找到。
12-01 10:43:05.364 D/Mono (11194): DllImport 加载库时出错
'libe_sqlite3.so': 'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so”未找到。
12-01 10:43:05.365 D/Mono (11194): DllImport 加载库时出错
'libe_sqlite3': 'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”未找到。
12-01 10:43:05.365 W/Mono (11194): DllImport 无法加载库
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”未找到。
12-01 10:43:05.365 D/Mono (11194):DllImport 尝试加载:
'e_sqlite3'。 12-01 10:43:05.366 D/Mono (11194): DllImport 错误
加载库
'/storage/emulated/0/Android/data/com.psonar.android/files/。override/libe_sqlite3':
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/.override/libe_sqlite3"
未找到'。 12-01 10:43:05.368 D/Mono (11194): DllImport 错误
加载库
'/storage/emulated/0/Android/data/com.psonar.android/files/。override/libe_sqlite3.so':
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/.override/libe_sqlite3.so"
未找到'。 12-01 10:43:05.368 D/Mono (11194): DllImport 错误
加载库 '/system/lib/libe_sqlite3': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3”不是
成立'。 12-01 10:43:05.368 D/Mono (11194): DllImport 加载错误
库 '/system/lib/libe_sqlite3.so': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”
未找到'。 12-01 10:43:05.368 D/Mono (11194): DllImport 错误
加载库 'libe_sqlite3': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”未找到。
12-01 10:43:05.368 D/Mono (11194): DllImport 加载库时出错
'libe_sqlite3.so': 'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so”未找到。
12-01 10:43:05.369 D/Mono (11194): DllImport 加载库时出错
'e_sqlite3': 'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/e_sqlite3”未找到。 12-01
10:43:05.370 D/Mono (11194): DllImport 加载库时出错
'/storage/emulated/0/Android/data/com.psonar.android/files/。override/libe_sqlite3':
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/.override/libe_sqlite3"
未找到'。 12-01 10:43:05.371 D/Mono (11194): DllImport 错误
加载库
'/storage/emulated/0/Android/data/com.psonar.android/files/。override/libe_sqlite3.so':
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86//storage/emulated/0/Android/data/com.psonar.android/files/.override/libe_sqlite3.so"
未找到'。 12-01 10:43:05.372 D/Mono (11194): DllImport 错误
加载库 '/system/lib/libe_sqlite3': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3”不是
成立'。 12-01 10:43:05.372 D/Mono (11194): DllImport 加载错误
库 '/system/lib/libe_sqlite3.so': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86//system/lib/libe_sqlite3.so”
未找到'。 12-01 10:43:05.372 D/Mono (11194): DllImport 错误
加载库 'libe_sqlite3': 'dlopen 失败: 库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”未找到。
12-01 10:43:05.372 D/Mono (11194): DllImport 加载库时出错
'libe_sqlite3.so': 'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3.so”未找到。
12-01 10:43:05.373 D/Mono (11194): DllImport 加载库时出错
'libe_sqlite3': 'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”未找到。
12-01 10:43:05.373 W/Mono (11194): DllImport 无法加载库
'dlopen 失败:库
“/data/app/com.psonar.android-1/lib/x86/libe_sqlite3”未找到。
很明显出了什么问题:System.DllNotFoundException:e_sqlite3但是我找不到任何可以解决此问题的相关信息。
我检查了我的 nuget 软件包,它们似乎都已正确安装。
我检查了包裹的位置,一切都是正确的。非常不确定原因可能在哪里。
EDIT:向此处的包的作者报告:https://github.com/praeclarum/sqlite-net/issues/478
nuget 包也必须安装在我们的主 droid 应用程序项目中。如果它安装在不是应用程序启动项目的解决方案项目中,则会产生这些问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)