use*_*726 5 java sqlite macos android
我从 gradle 项目迁移到 Maven 项目。单元测试曾经在 gradle 中工作,但现在我收到 UnsatisfiedLinkError 错误。
我的 build.gradle 有 -
task copyNativeDeps(type: Copy) {
from (configurations.compile+configurations.testCompile) {
include "*.dylib"
include "*.dll"
include "*.so"
}
into 'build/libs'
}
task unitTest(type: Test) {
// Set up dependent native libraries (sqllite) for running local DynamoDB
dependsOn copyNativeDeps
systemProperty "java.library.path", 'build/libs'
useJUnit {
includeCategories 'com.*.platform.identity.test.IUnitTest'
excludeCategories 'com.*.platform.identity.test.IIntegrationTest'
}
}
Run Code Online (Sandbox Code Playgroud)
为了获得相同的行为,我在 pom.xml 中添加了以下内容 -
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<executions>
<execution>
<id>copy</id>
<phase>test-compile</phase>
<configuration>
<includeScope>test</includeScope>
<includeTypes>so,dll,dylib</includeTypes>
<outputDirectory>${project.basedir}/build/libs</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
<includes>
<include>**/Test*.java</include>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
<include>**/*TestCase.java</include>
</includes>
<useFile>true</useFile>
<argLine>${surefireArgLine}</argLine>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这在单元测试中 -
System.setProperty("java.library.path", "build/libs");
Run Code Online (Sandbox Code Playgroud)
错误堆栈跟踪 -
2020-03-13 23:27:33,397 WARN [ ] SQLiteQueue[] [sqlite] cannot open DB[1]: com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64-1.0.392 in java.library.path
2020-03-13 23:27:33.400 ERROR 13542 --- [ SQLiteQueue[]] com.almworks.sqlite4java : [sqlite] SQLiteQueue[]: error running job queue
com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64-1.0.392 in java.library.path
at com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:97)
at com.almworks.sqlite4java.SQLiteConnection.open0(SQLiteConnection.java:1441)
at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:282)
at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:293)
at com.almworks.sqlite4java.SQLiteQueue.openConnection(SQLiteQueue.java:464)
at com.almworks.sqlite4java.SQLiteQueue.queueFunction(SQLiteQueue.java:641)
at com.almworks.sqlite4java.SQLiteQueue.runQueue(SQLiteQueue.java:623)
at com.almworks.sqlite4java.SQLiteQueue.access$000(SQLiteQueue.java:77)
at com.almworks.sqlite4java.SQLiteQueue$1.run(SQLiteQueue.java:205)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64-1.0.392 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at com.almworks.sqlite4java.Internal.tryLoadFromSystemPath(Internal.java:352)
at com.almworks.sqlite4java.Internal.loadLibraryX(Internal.java:124)
at com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:95)
... 9 common frames omitted
2020-03-13 23:27:33,400 ERROR [ ] SQLiteQueue[] [sqlite] SQLiteQueue[]: error running job queue
com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64-1.0.392 in java.library.path
at com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:97)
at com.almworks.sqlite4java.SQLiteConnection.open0(SQLiteConnection.java:1441)
at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:282)
at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:293)
at com.almworks.sqlite4java.SQLiteQueue.openConnection(SQLiteQueue.java:464)
at com.almworks.sqlite4java.SQLiteQueue.queueFunction(SQLiteQueue.java:641)
at com.almworks.sqlite4java.SQLiteQueue.runQueue(SQLiteQueue.java:623)
at com.almworks.sqlite4java.SQLiteQueue.access$000(SQLiteQueue.java:77)
at com.almworks.sqlite4java.SQLiteQueue$1.run(SQLiteQueue.java:205)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64-1.0.392 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at com.almworks.sqlite4java.Internal.tryLoadFromSystemPath(Internal.java:352)
at com.almworks.sqlite4java.Internal.loadLibraryX(Internal.java:124)
at com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:95)
... 9 common frames omitted
2020-03-13 23:27:33.401 ERROR 13542 --- [ SQLiteQueue[]] com.almworks.sqlite4java : [sqlite] SQLiteQueue[]: stopped abnormally, reincarnation is not possible for in-memory database
2020-03-13 23:27:33,401 ERROR [ ] SQLiteQueue[] [sqlite] SQLiteQueue[]: stopped abnormally, reincarnation is not possible for in-memory database
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它仍然无法链接。
| 归档时间: |
|
| 查看次数: |
1712 次 |
| 最近记录: |