gpt4 book ai didi

java-8 - Android studio 在项目中找不到 java.math.BigInteger 的一些方法

转载 作者:行者123 更新时间:2023-12-04 14:27:27 25 4
gpt4 key购买 nike

我在 Intellij Idea 中使用 kotlin 实现了一个项目。这是没有错误的工作。这是我没有错误的 Intellij 项目照片

enter image description here但是当我在 Android Studio 中实现这个项目时,我得到了错误,因为工作室在 BigInteger 类中找不到这个方法

longValueExact()

Android Studio 项目照片:

enter image description here我的计算机中有一个 JDK (v 1.8)。但在 Itellij 项目中,此方法有效,而在 android studio 中无效。

我在 android studio 中打开了 java.math.BigInteger 类并看到了 longValueExact() 方法:

enter image description here Kotlin 类:

open class AuthKey(val key: ByteArray) {

constructor(key: ByteBuffer) : this(key.array())

init {
if (key.size != 256)
throw RuntimeException("AuthKey must be 256 Bytes found ${key.size} bytes")
}

// see https://core.telegram.org/mtproto/description#key-identifier
// SHA1 generates 20 bytes long hash, authKeyId is the lower 8 bytes
val keyId = CryptoUtils.substring(CryptoUtils.SHA1(key), 12, 8)

fun getKeyIdAsLong() = BigInteger(keyId).longValueExact()
}

class TempAuthKey(key: ByteArray, val expiresAt: Int) : AuthKey(key)

这意味着我们在 java 1.8 中有这个类,我们在 android studio 中添加了它。和 android studio 使用外部库中的所有方法加载此类。但是我们不能在项目类中使用这些方法!

谁能帮帮我?

最佳答案

Android 有自己的 java.whatever 实现类,也可以有不同的接口(interface),特别是涉及到最近 Java 版本中添加的东西时。在 https://developer.android.com/reference/java/math/BigInteger.html你可以看到即使是最新的 Android API (25) 也没有这个方法。因此,如果您设法编译了该程序,它将无法在设备上实际运行。

<1.8>外部库不用于 Android 项目,如果您查看模块依赖项,您不应该看到它。


更新 - 此方法和其他“值精确”方法已在 API 31 中添加到 Android。

关于java-8 - Android studio 在项目中找不到 java.math.BigInteger 的一些方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42550985/

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