我尝试创建应用并使用sqlite-pcl
,并在我的应用启动时出现以下错误;
DllImport attempting to load: 'e_sqlite3'.
DllImport error loading library '/storage/emulated/0/Android/data/appTecnicos.appTecnicos/files/.__override__/libe_sqlite3': 'dlopen failed: library "/data/app/appTecnicos.appTecnicos-1/lib/x86//storage/emulated/0/Android/data/appTecnicos.appTecnicos/files/.__override__/libe_sqlite3" not found'.
DllImport error loading library '/storage/emulated/0/Android/data/appTecnicos.appTecnicos/files/.__override__/libe_sqlite3.so': 'dlopen failed: library "/data/app/appTecnicos.appTecnicos-1/lib/x86//storage/emulated/0/Android/data/appTecnicos.appTecnicos/files/.__override__/libe_sqlite3.so" not found'.
DllImport error loading library '/system/lib/libe_sqlite3': 'dlopen failed: library "/data/app/appTecnicos.appTecnicos-1/lib/x86//system/lib/libe_sqlite3" not found'.
DllImport error loading library '/system/lib/libe_sqlite3.so': 'dlopen failed: library "/data/app/appTecnicos.appTecnicos-1/lib/x86//system/lib/libe_sqlite3.so" not found'.
DllImport error loading library 'libe_sqlite3': 'dlopen failed: library "/data/app/appTecnicos.appTecnicos-1/lib/x86/libe_sqlite3" not found'.
DllImport loaded library 'libe_sqlite3.so'.
DllImport searching in: 'e_sqlite3' ('libe_sqlite3.so').
Searching for 'sqlite3_libversion_number'.
An unhandled exception occured.
我在两个解决方案,便携式和机器人中安装了nuget包。我在droid项目中安装了Sqlite
组件。
我清理了构建并重新编译但它返回了同样的错误。
编辑:
我在编译器调试中找到了这个;
Loaded assembly: /storage/emulated/0/Android/data/appTecnicos.appTecnicos/files/.__override__/SQLitePCLRaw.lib.e_sqlite3.dll
它看起来像e_sqlite3.dll已经在proyect上了。
提前致谢
答案 0 :(得分:0)
我认为您的初始应用尚未正确安装该软件包。删除sqlite-pcl
,清除,重建&将它安装到您的启动应用程序和机器人项目。还要检查你的参考文献,看它是否真的存在。
答案 1 :(得分:0)
我发现了我的错误。我有一个类似的课程;
public class StaticsValues
{
[...]
public static string FOLDERPATH;
public static string DBPATH;
public static BD.BDManager BDMANAGER = new BD.BDManager;
}
在我的DROID项目编译之前,对象BDManager
在解决方案中开始。我改为:
public class StaticsValues
{
[...]
public static string FOLDERPATH;
public static string DBPATH;
public static BD.BDManager BDMANAGER ;
}
然后在BD.Manager
中启动App.cs
,现在可以正常工作。
答案 2 :(得分:0)
“ DllImport错误加载库'... /。覆盖 / libe_sqlite3'”消息也误导了我。调试输出与冻结我的应用程序的实际异常一致。
对我来说,它在new SQLiteConnection()
中使用了相对路径-在使用UWP版本之前,它运行得非常好。在将其更改为使用绝对路径后,它也可以在Android上使用:
var dbpath = Path.Combine(System.Environment.GetFolderPath(
System.Environment.SpecialFolder.LocalApplicationData), "myData.sqlite");
db = new SQLiteConnection(dbpath, false);