重载分辨率歧义HashMap.get Kotlin

tyc*_*czj 10 android kotlin android-studio

我刚刚将Android Q SDK更新为android studio中的修订版2,现在从哈希图中获取值时出现错误

在此处输入图片说明

it是的HashMap<String,String>,这段代码很好,直到我在android studio中更新到Q版本2为止。

这是我的HashMap的来源

val map = HashMap<String,String>()
map["owner"] = shipment.owner
map["current"] = signedInUser
shipmentOwnedLiveData.postValue(map)
Run Code Online (Sandbox Code Playgroud)

我发现了一个与此类似的问题,但与Android无关,并且已有几年历史了

任何人都知道问题是什么或如何解决?

编辑:

似乎它也破坏了ArrayLists,因为调用.contains.remove对集合也抛出歧义错误。

似乎所有这些方法都有重复的方法

编辑2:

看来我不是唯一遇到此问题的人

https://issuetracker.google.com/issues/139041608#comment3

Jam*_*ald 7

在Google撤消更新之前,最新的Android SDK 29版本一直是一个错误。请参阅https://issuetracker.google.com/issues/139041608

如果您不幸在platforms;android-29版本2降级之前就安装了版本2,则必须将其降级到版本1。可以通过首先使用该$ANDROID_HOME/tools/bin/sdkmanager工具卸载软件包来执行此操作。

sdkmanager --uninstall "platforms;android-29"
Run Code Online (Sandbox Code Playgroud)

然后,通过从中删除"platforms;android-29"包含的元素,<major>2</major>从缓存中删除修订版2 $HOME/.android/cache/sdkbin-1_b735609c-repository2-1_xml

<remotePackage path="platforms;android-29">
  <!--Generated from bid:5747142, branch:qt-release-->
  <type-details xsi:type="sdk:platformDetailsType">
    <api-level>29</api-level>
    <codename></codename>
    <layoutlib api="15"/>
  </type-details>
  <revision>
    <major>2</major>
  </revision>
  <display-name>Android SDK Platform 29</display-name>
  <uses-license ref="android-sdk-license"/>
  <channelRef ref="channel-0"/>
  <archives>
    <archive>
      <!--Built on: Tue Jul 23 11:56:59 2019.-->
      <complete>
        <size>78259143</size>
        <checksum>c8b1361cc03309a8113de92f93471524fa0c36f7</checksum>
        <url>platform-29_r02.zip</url>
      </complete>
    </archive>
  </archives>
</remotePackage>
Run Code Online (Sandbox Code Playgroud)

保留其他"platforms;android-29"元素,<major>1</major>然后重新安装该软件包:

sdkmanager --install "platforms;android-29"
Run Code Online (Sandbox Code Playgroud)


tyc*_*czj 2

根据问题跟踪器中的错误报告r2,谷歌已恢复到r1

API 29 r2 已从 Studio SDK Manager 暂时回滚,直到确定并修复根本原因。

因此,只需从 adk 管理器卸载/重新安装 Q,您就应该回到 r1