Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android kapt java.lang.UnsatisfiedLinkError Room_Android_Android Room_Androidx - Fatal编程技术网

Android kapt java.lang.UnsatisfiedLinkError Room

Android kapt java.lang.UnsatisfiedLinkError Room,android,android-room,androidx,Android,Android Room,Androidx,我正在更新我的项目以使用jetpack库 我在命令行中执行了以下操作: ./gradlew :app:kaptDebugKotlin 在我的项目目录中,引发了以下错误: e: [kapt] An exception occurred: java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open_utf8([BI)V at org.sqlite.core.NativeDB._open_utf8(Native Met

我正在更新我的项目以使用jetpack库

我在命令行中执行了以下操作:

./gradlew :app:kaptDebugKotlin
在我的项目目录中,引发了以下错误:

e: [kapt] An exception occurred: java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open_utf8([BI)V
        at org.sqlite.core.NativeDB._open_utf8(Native Method)
        at org.sqlite.core.NativeDB._open(NativeDB.java:71)
        at org.sqlite.core.DB.open(DB.java:174)
        at org.sqlite.core.CoreConnection.open(CoreConnection.java:220)
        at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:76)
        at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:25)
        at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:24)
        at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:45)
        at org.sqlite.JDBC.createConnection(JDBC.java:114)
        at androidx.room.verifier.DatabaseVerifier$Companion.create(DatabaseVerifier.kt:81)
        at androidx.room.processor.DatabaseProcessor.doProcess(DatabaseProcessor.kt:78)
        at androidx.room.processor.DatabaseProcessor.process(DatabaseProcessor.kt:54)
        at androidx.room.RoomProcessor$DatabaseProcessingStep.process(RoomProcessor.kt:63)
        at com.google.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:330)
        at com.google.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:181)
        at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:99)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
        at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
        at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1068)
        at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:55)
        at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:27)
        at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:216)
        at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:164)
        at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:93)
        at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:98)
        at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:108)
        at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:85)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:370)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:61)
        at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:101)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:361)
        at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:126)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:154)
        at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:51)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:95)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:50)
        at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:88)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:405)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$1$1$2.invoke(CompileServiceImpl.kt:98)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:927)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:98)
        at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:957)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:926)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:404)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
        at sun.rmi.transport.Transport$1.run(Transport.java:200)
        at sun.rmi.transport.Transport$1.run(Transport.java:197)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
}

这是应用程序build.gradle

    buildscript {
    repositories {
        maven {
            url "https://maven.google.com"
        }
        jcenter()
        mavenCentral()
        google()
    }

    dependencies {
        classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.0'
    }
}

    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'
    apply plugin: 'kotlin-kapt'
    apply plugin: 'com.google.cloud.tools.endpoints-framework-client'

    android {
        compileSdkVersion 28
        buildToolsVersion "28.0.3"
        defaultConfig {
            applicationId "package.name.of.app"
            minSdkVersion 15
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            //multiDexEnabled false
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        dexOptions {
            javaMaxHeapSize "4096m"
        }
        dataBinding {
            enabled = true
        }
    }

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "androidx.appcompat:appcompat:$rootProject.supportLibVersion"
        implementation "com.google.android.material:material:$rootProject.supportLibVersion"

        implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

        implementation 'com.squareup.retrofit2:retrofit:2.1.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.1.0'

        implementation 'com.github.bumptech.glide:glide:4.8.0'
        kapt 'com.github.bumptech.glide:compiler:4.8.0'

        implementation 'com.google.android.gms:play-services-maps:16.0.0'
        implementation 'com.google.android.gms:play-services-auth:16.0.1'

        // architecture components
        implementation "androidx.lifecycle:lifecycle-extensions:$rootProject.archLifecycleVersion"
        implementation "androidx.lifecycle:lifecycle-runtime:$rootProject.archLifecycleVersion"
        implementation "androidx.room:room-runtime:$rootProject.roomVersion"
        implementation "androidx.paging:paging-runtime:$rootProject.pagingVersion"
        kapt "androidx.lifecycle:lifecycle-compiler:$rootProject.archLifecycleVersion"
        kapt "androidx.room:room-compiler:$rootProject.roomVersion"

        testImplementation 'junit:junit:4.12'
    }

    configurations {
        all {
            exclude module: 'httpclient'
            exclude module: 'commons-logging'
        }
    }

有人知道是什么导致了这个问题吗?为什么SQLite错误发生在编译期间而不是实际执行期间?此外,是否有人成功编译了具有上述类似依赖项的应用程序

在搜索有关此问题的信息时,我找到了此链接


修复方法是更新/etc/fstab以从/tmp中删除'noexec',然后在Windows中重新安装/tmp

,在c:\Users\\AppData\Temp中将所有权限授予您的用户,问题将消失。
每次更新Windows时,您都必须这样做。

如果您没有从
/tmp
中删除
noexec
的权限,您还可以为
kapt
提供另一种
java.io.tmpdir

A有一个解决方案:

由于您使用的是
kapt
,您确定要将
java.io.tmpdir
传递给Kotlin的编译器守护进程而不是Gradle的吗

例如:

./gradlew <gradle-params> -Dkotlin.daemon.jvm.options="-Djava.io.tmpdir=path/to/a/folder" <task>
/gradlew-Dkotlin.daemon.jvm.options=“-Djava.io.tmpdir=path/to/a/folder”
另一个建议是升级到
2.2.5
可以解决问题:

您可以尝试一下吗?我们在该版本中对JDBC库以及Room编译器加载和使用它的方式进行了一些进一步的修复


我升级到
2.2.5
,问题消失了,但我没有在每个版本上看到此故障,因此我必须等待几周才能确定此问题已得到解决。

版本。gradle
的问题不止一个…Hi@MartinZeitler,您能描述一下您在build.gradle文件中看到的问题吗?谢谢
    buildscript {
    repositories {
        maven {
            url "https://maven.google.com"
        }
        jcenter()
        mavenCentral()
        google()
    }

    dependencies {
        classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.0'
    }
}

    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-android'
    apply plugin: 'kotlin-android-extensions'
    apply plugin: 'kotlin-kapt'
    apply plugin: 'com.google.cloud.tools.endpoints-framework-client'

    android {
        compileSdkVersion 28
        buildToolsVersion "28.0.3"
        defaultConfig {
            applicationId "package.name.of.app"
            minSdkVersion 15
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            //multiDexEnabled false
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        dexOptions {
            javaMaxHeapSize "4096m"
        }
        dataBinding {
            enabled = true
        }
    }

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation "androidx.appcompat:appcompat:$rootProject.supportLibVersion"
        implementation "com.google.android.material:material:$rootProject.supportLibVersion"

        implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

        implementation 'com.squareup.retrofit2:retrofit:2.1.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.1.0'

        implementation 'com.github.bumptech.glide:glide:4.8.0'
        kapt 'com.github.bumptech.glide:compiler:4.8.0'

        implementation 'com.google.android.gms:play-services-maps:16.0.0'
        implementation 'com.google.android.gms:play-services-auth:16.0.1'

        // architecture components
        implementation "androidx.lifecycle:lifecycle-extensions:$rootProject.archLifecycleVersion"
        implementation "androidx.lifecycle:lifecycle-runtime:$rootProject.archLifecycleVersion"
        implementation "androidx.room:room-runtime:$rootProject.roomVersion"
        implementation "androidx.paging:paging-runtime:$rootProject.pagingVersion"
        kapt "androidx.lifecycle:lifecycle-compiler:$rootProject.archLifecycleVersion"
        kapt "androidx.room:room-compiler:$rootProject.roomVersion"

        testImplementation 'junit:junit:4.12'
    }

    configurations {
        all {
            exclude module: 'httpclient'
            exclude module: 'commons-logging'
        }
    }
./gradlew <gradle-params> -Dkotlin.daemon.jvm.options="-Djava.io.tmpdir=path/to/a/folder" <task>