当前位置: 首页 > 工具软件 > BumbleBee > 使用案例 >

Android Studio - Bumblebee | 2021.1.1 Patch 3

公孙高轩
2023-12-01

一般修复和功能

此更新包括对以下问题的修复:

Android Gradle 插件
构建变体
  • 问题 #158597249:如果变体的版本名称是通过新的 onVariants API 设置的,则 versionNameSuffix 不再有效
撰写预览
  • 性能和稳定性相关的错误修复。
  • 解决使用文字实时编辑功能时偶尔发生的冻结问题。
网络检查员


  • 问题 #219563755:Bumblebee 更新后新的网络检查器崩溃
  • 问题 #220807361:当调试器连接到最新版本的 Android Studio 时,我经常收到此错误。
  • 问题 #219572925:TrackedHttpURLConnection.getHeaderField 崩溃并出现 NullPointerException

问题 #223365583

详细描述问题:

我们看到一些问题,开发人员在移动类后无法构建项目。尽管有多种情况似乎会发生这种情况,但我们发现最简单的重现是从一个定义两个具有相同 . 的库项目的项目开始packageName,然后构建,然后更改包名称,然后再次尝试构建。在这种情况下BuildConfig,原始包名的类以及新包名存在于位于的最终 apk 中app/build/intermediates/apk/debug/app-debug.apk

软件/硬件

Android Studio Bumblebee 2021.1.1 Android Gradle 插件 7.1.1 Gradle 7.4 操作系统:Mac OS 10.15.7

重现步骤:

  1. 在 Android Studio 中导入附加的项目
  2. 连接 API 29 的 Android 设备
  3. 点击运行按钮
  4. 签入 APKapp/build/intermediates/apk/debug/app-debug.apk以查看它仅包含 4 个类com.example.app.BuildConfigcom.example.app.Rcom.example.lib.BuildConfigcom.example.lib.R
  5. 将 packageName 值更改lib/src/main/AndroidManifest.xmlcom.example.lib.a.
  6. 再次单击运行按钮。
  7. 再次检查app/build/intermediates/apk/debug/app-debug.apk它现在包含 6 个类文件,BuildConfig每个包中都有一个com.example.appcom.example.lib并且com.example.lib.a

您还将看到两个类dex都存在一个文件,如所附屏幕截图所示BuildConfiglib/build/.transforms

Studio Build:2021.1.1 Gradle 插件版本:7.1.1 Gradle 版本:7.4 Java 版本:11 操作系统:MacOS 10.15.7


问题 #158597249

Studio Build: N/A
Version of Gradle Plugin: 4.1.0-alpha09
Version of Gradle: 6.5
Version of Java: 8
OS: MacOS

如果我有一个自定义任务计算新onVariantsAPI的版本名称,则versionNameSuffix实际上变成了无操作。

我在这个项目+分支中有一个复制案例:GitHub - ZacSweers/CatchUp at z/suffix

运行./gradlew :app:assembleRelease并观察最终清单没有-release该分支为其添加提交的后缀。该项目使用新的 onVariants API 在此处进行设置:CatchUp/CatchUpPlugin.kt at z/suffix · ZacSweers/CatchUp · GitHub

repro 项目在 buildtype 上使用 versionNameSuffix,但我们在 slack 内部也观察到在产品风味上使用时也出现了同样的错误。

问题 #219563755

每次我尝试使用 App Inspector,特别是 Network Inspector 时,它一直在崩溃,Android Studio 继续正常工作,但 Network Inspector 只是告诉我它崩溃了并向我显示了一个“重新启动”按钮,但它基本上什么也没做。

内部版本:AI-211.7628.21.2111.8139111、202202012023、

AI-211.7628.21.2111.8139111、JRE 11.0.11+9-b60-7590822x64 JetBrains sro、操作系统 Windows 10(amd64) v10.0080.0.0.x 10.0080.0.x x1080.0

如:大黄蜂 | 2021.1.1 补丁 1;Kotlin 插件:211-1.6.10-release-923-AS7442.40;Android Gradle 插件:7.0.4;摇篮:7.0.2;Gradle JDK:版本 11.0.11;NDK:来自local.properties:(未指定),最新来自SDK:(未找到);LLDB:未找到固定版本 3.1,来自 SDK 的最新版本:(未找到包);CMake:来自 local.properties:(未指定),最新来自 SDK:(未找到),来自 PATH:(未找到)来源:user_sentiment_feedback

问题 #220807361

内部版本:AI-211.7628.21.2111.8139111、202202012023、

AI-211.7628.21.2111.8139111、JRE 11.0.11+9-b60-7590822x64 JetBrains sro、OS Windows 10(amd64)、v10.0350.0.02、屏幕x1080.0

AS:大黄蜂 | 2021.1.1 补丁 1;Kotlin 插件:211-1.6.10-release-923-AS7442.40;Android Gradle 插件:7.0.4;摇篮:7.0.2;Gradle JDK:版本 11.0.11;NDK:来自local.properties:(未指定),最新来自SDK:(未找到);LLDB:未找到固定版本 3.1,来自 SDK 的最新版本:(未找到包);CMake:来自local.properties:(未指定),最新来自SDK:(未找到),来自PATH:(未找到)重要提示:请 仔细

阅读https://developer.android.com/studio/report-bugs.html并提供所有必需的信息。

没有特定的复制步骤。它似乎随机且频繁地发生。不调试时没有问题。我相信这与android studio中的网络分析器有关。我已连接到物理设备(Samsung Galaxy Tab S7)

问题 #219572925

构建:AI-211.7628.21.2111.8139111、202202012023、

AI-211.7628.21.2111.8139111,JRE 11.0.11+9-b60-7590822x64 JetBrains sro,操作系统 Windows 10(amd64) v10.0,屏幕 3200.0x1800.0

如:大黄蜂 | 2021.1.1 补丁 1;Kotlin 插件:211-1.6.10-release-923-AS7442.40;Android Gradle 插件:7.1.1;梯度:7.3.3;Gradle JDK:版本 11.0.12;NDK:来自local.properties:(未指定),最新来自SDK:(未找到);LLDB:LLDB 3.1(修订版:3.1.4508709);CMake:来自 local.properties:(未指定),最新来自 SDK:3.18.1-g262b901-dirty,来自 PATH:(未找到)

我启用网络分析器(https://developer.android.com/studio/profile/network-profiler)

HttpURLConnection 被包裹在 TrackedHttpURLConnection (com.android.tools.appinspection.network.httpurl.TrackedHttpURLConnection)

我调用con.getHeaderField("Content-Type")
的方法契约是“返回:命名的头字段的值,如果头中没有这样的字段,则返回null。”

但是,TrackedHttpURLConnection在此调用中崩溃: java.lang.NullPointerException: wrapped.getHeaderField(key) must not be null

似乎您注入的 TrackedHttpURLConnection 因期望来自包装的 HttpURLConnection 的非空结果而违反合同。

预期修复:如果没有这样的标头字段,则在 TrackedHttpURLConnection.getHeaderField 中返回 null。

 类似资料: