Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Java 找不到内联方法的类-是什么原因造成的?_Java_Kotlin_Jasync Sql - Fatal编程技术网

Java 找不到内联方法的类-是什么原因造成的?

Java 找不到内联方法的类-是什么原因造成的?,java,kotlin,jasync-sql,Java,Kotlin,Jasync Sql,我收到以下stacktrace的错误: java.lang.NoClassDefFoundError: com/github/jasync/sql/db/ConcreteConnectionBase$flatten$$inlined$mapTry$1 at com.github.jasync.sql.db.ConcreteConnectionBase.releaseIfNeeded(ConcreteConnectionBase.kt:98) [jasync-common-0.9.41.j

我收到以下stacktrace的错误:

java.lang.NoClassDefFoundError: com/github/jasync/sql/db/ConcreteConnectionBase$flatten$$inlined$mapTry$1
    at com.github.jasync.sql.db.ConcreteConnectionBase.releaseIfNeeded(ConcreteConnectionBase.kt:98) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.mysql.MySQLConnection.sendPreparedStatementDirect(MySQLConnection.kt:299) [jasync-mysql-0.9.41.jar:?]
    at com.github.jasync.sql.db.ConcreteConnectionBase$sendPreparedStatement$1.invoke(ConcreteConnectionBase.kt:75) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.ConcreteConnectionBase$sendPreparedStatement$1.invoke(ConcreteConnectionBase.kt:16) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.interceptor.ConnectionInterceptorHelperKt.wrapPreparedStatementWithInterceptors(ConnectionInterceptorHelper.kt:35) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.ConcreteConnectionBase.sendPreparedStatement(ConcreteConnectionBase.kt:67) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.pool.ConnectionFactory.test(ConnectionFactory.kt:81) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.pool.ConnectionFactory.test(ConnectionFactory.kt:14) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.pool.ObjectPoolActor.sendAvailableItemsToTest(ActorBasedObjectPool.kt:342) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.pool.ObjectPoolActor.handleTestAvailableItems(ActorBasedObjectPool.kt:282) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.pool.ObjectPoolActor.onReceive(ActorBasedObjectPool.kt:226) [jasync-common-0.9.41.jar:?]
    at com.github.jasync.sql.db.pool.ActorBasedObjectPool$actor$1.invokeSuspend(ActorBasedObjectPool.kt:141) [jasync-common-0.9.41.jar:?]
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32) [kotlin-stdlib-1.3.10.jar:1.3.10-release-253 (1.3.10)]
    at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:233) [kotlinx-coroutines-core-1.1.1.jar:?]
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594) [kotlinx-coroutines-core-1.1.1.jar:?]
    at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60) [kotlinx-coroutines-core-1.1.1.jar:?]
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742) [kotlinx-coroutines-core-1.1.1.jar:?]
Caused by: java.lang.ClassNotFoundException: com.github.jasync.sql.db.ConcreteConnectionBase$flatten$$inlined$mapTry$1
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) [?:1.8.0_144]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) [?:1.8.0_144]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) [?:1.8.0_144]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) [?:1.8.0_144]
    ... 17 more
您可以在此处看到
ConcreteConnectionBase
类的源代码:

flatMapTry
mapTry
是内联函数。奇怪的是,上面的stacktrace不一致(即不是在所有实例上都发生)

我反编译了jar,但没有看到任何缺少类的证据(据我所知)。
是否还有其他原因我可能会在这里丢失?

结果表明该工件已损坏
gradle clean
修复了该问题

我发现它的方法是使用:

>jar tf jasync-common-0.9.24.jar  | grep ConcreteConnectionBase | grep mapTry
com/github/jasync/sql/db/ConcreteConnectionBase$flatten$$inlined$mapTry$1$lambda$1.class
com/github/jasync/sql/db/ConcreteConnectionBase$flatten$$inlined$mapTry$1.class
并将其与:

>jar tf jasync-common-0.9.41.jar | grep-ConcreteConnectionBase | grep-mapTry


它是空的。

如果你有大约20分钟的时间阅读这篇文章(),你可能会发现那里发生了什么。类加载问题通常很难找到。是的,我理解,但在这种情况下,它是来自同一个文件的类。您使用proguard还是什么?不,它是一个服务器端应用程序,运行在JRE 8上。请检查应用程序的
.jar
文件中是否有缺少的类。确保包含所有可传递的依赖项。检查库的版本(可能是某些库在依赖项解析时被升级/降级)