由于操作系统名称为Mac且架构为aarch64,找不到任何本地库。路径为/org/sqlite/native/Mac/aarch64。

7 浏览
0 Comments

由于操作系统名称为Mac且架构为aarch64,找不到任何本地库。路径为/org/sqlite/native/Mac/aarch64。

我正在使用的是Android Studio [Android Studio Arctic Fox | 2020.3.1 Patch 1]\n我的Room库版本是[2.3.0]\n使用的Gradle版本为[7.0.1]\n还添加了kapt \'org.xerial:sqlite-jdbc:3.36.0.1\'\nCaused by: java.lang.Exception: 找不到适用于os.name=Mac和os.arch=aarch64的本地库。路径=/org/sqlite/native/Mac/aarch64 at org.sqlite.SQLiteJDBCLoader.loadSQLiteNativeLibrary(SQLiteJDBCLoader.java:333) at org.sqlite.SQLiteJDBCLoader.initialize(SQLiteJDBCLoader.java:64) at androidx.room.verifier.DatabaseVerifier.(DatabaseVerifier.kt:71)\n\n如何解决这个错误?\n解决方案\n使用Room版本:2.4.0-alpha03或更高版本。

0
0 Comments

由于操作系统为Mac且架构为aarch64,没有找到相应的本地库,导致出现了该问题。解决方法是使用Room [2.4.0-alpha04]版本,并移除kapt "org.xerial:sqlite-jdbc:3.34.0"依赖。这个解决方法已经被确认在M1 Pro芯片组上有效,当前版本为2.4.2。

0
0 Comments

最近更新(2021年10月26日)-

最新的更新似乎修复了Room的问题,

因此您可以考虑将Room更新到最新版本:

---- 2.4.0-alpha03 ---- 或更高版本

对于那些遇到这个问题的人,现在可以在room-compiler之前简单添加这行代码作为解决方法:

kapt "org.xerial:sqlite-jdbc:3.34.0"

如果上述解决方法不起作用,建议使用以下解决方法,将其添加到根build.gradle中。这将强制在整个项目中使用给定的依赖项:

allprojects {
    configurations.all {
        resolutionStrategy {
            force 'org.xerial:sqlite-jdbc:3.34.0'
        }
    }
}

即使我将Room更新到2.5.1版本后,我仍然遇到了这个问题。添加这个强制解决策略最终解决了这个问题!

0
0 Comments

原因:该问题的原因是在使用苹果M1芯片时,Room的SQLite本地库不支持Mac和aarch64架构,导致找不到本地库。

解决方法:根据官方文档和开发者的经验,可以采取以下解决方法:

1. 将Room的版本更改为2.4.0-alpha03或更高版本。可以在build.gradle文件中的dependencies部分添加以下代码:

implementation "androidx.room:room-runtime:2.4.0-alpha03"
annotationProcessor "androidx.room:room-compiler:2.4.0-alpha03"
kapt 'androidx.room:room-compiler:2.4.0-alpha03'

这样可以确保使用支持苹果M1芯片的Room版本。

2. 如果使用的是2.4.0-alpha05版本,也可以解决该问题。

需要注意的是,虽然这些解决方法在目前的情况下有效,但由于这些版本仍处于Alpha阶段,可能会在将来的版本中出现问题。因此,在实际生产应用程序中使用时需要谨慎。

以上是关于解决"Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64. path=/org/sqlite/native/Mac/aarch64"问题的原因和解决方法。如果遇到类似的错误,可以尝试采取上述方法解决。

0