我已经把房间搬到ksp了。在本地机器(Mac)上一切都很好,但是在我们的Linux机器上,我得到了一个错误,这个应用程序没有编译。有什么想法,为什么会发生,以及如何解决?
堆栈跟踪:
Task :app:kspCustomQaKotlin
e: java.lang.ExceptionInInitializerError
at androidx.room.processor.DatabaseProcessor.doProcess(DatabaseProcessor.kt:82)
...
Caused by: java.lang.Exception: No native library found for os.name=Linux, os.arch=x86_64, paths=[/org/sqlite/native/Linux/x86_64:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib]
at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:389)
at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:68)
at androidx.room.verifier.DatabaseVerifier.<clinit>(DatabaseVerifier.kt:70)发布于 2022-05-23 16:42:26
DatabaseVerifier是房间编译器的一部分,它使用本地SQLite实例来验证SQLite查询的正确性。它通过在机器上对SQLite的内存实例执行查询来进行验证。这与KSP本身无关。
产生错误的原因
Caused by: java.lang.Exception: No native library found for os.name=Linux, os.arch=x86_64, paths=[/org/sqlite/native/Linux/x86_64:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib]说它无法在您的机器上找到sqlite二进制文件。你试过手动安装吗?您还可以编写小的gradle任务,在您的CI上运行时检查sqlite二进制文件。
https://stackoverflow.com/questions/72029217
复制相似问题