gpt4 book ai didi

kotlin - 使用挂起函数混淆内部类后的 ClassCastException

转载 作者:行者123 更新时间:2023-12-02 13:26:43 30 4
gpt4 key购买 nike

我正在构建一个 kotlin AAR 库,我需要在发布之前对其进行混淆。我有以下结构:

package com.example.token

interface TokenManager {
suspend fun getTokenStatus(): String
}
以上是api客户端可用的公共(public)接口(interface)。实现被移动到一个内部包:
package com.example.token.internal

internal class RestApiTokenManager: TokenManager {
override suspend fun getTokenStatus(): String {
//....
}
}
我的混淆异常只包括公共(public)接口(interface)包:
-keep class com.example.token.*{*;}
不幸的是,这会导致类转换异常:
java.lang.ClassCastException: e.e.a.a.l.d.e$a cannot be cast to c.a.a.e.a.a$a
为了解决这个问题,我需要为实现包添加一个混淆异常,这是我想避免的。
现在真正奇怪的问题是 ClassCastException删除 suspend 后立即消失修饰符。
我尝试添加 -keeptkotlinmetadata但我得到 R8: Unknown option错误。
我已经被这个问题困扰了很长时间,没有一个不会强制我为我的内部实现类添加异常的解决方案。

最佳答案

这可能是 R8 中的错误,我已打开 issue 167373399跟踪这个。
请在那里跟进有关您当前使用的 Android Studio/R8 版本的信息?
也请看看this Medium post ,其中包含有关使用 R8 缩小 Kotlin 代码的更多详细信息。

关于kotlin - 使用挂起函数混淆内部类后的 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63595276/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com