uni-app应用中谷歌审核提示与Kotlin不兼容会导致应用崩溃

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app应用中谷歌审核提示与Kotlin不兼容会导致应用崩溃

谷歌商店审核提示

问题描述

想问下,谷歌商店审核提示
与 Kotlin 不兼容会导致应用崩溃
您的应用使用了 Kotlin 的 removeFirst()removeLast() 扩展函数,这与 Android 15 中的 Java 函数冲突。这会导致应用在搭载 Android 14 或更低版本的设备上崩溃。您的应用在以下位置使用了这些函数:

  • io.dcloud.uts.StringKt.split
  • io.dcloud.uts.StringKt.split

为避免应用崩溃,我们建议将所有 Kotlin removeFirst()removeLast() 函数调用替换为 removeAt(0)removeAt(list.lastIndex)

是我调用了什么API导致的么?
我这个项目基本没使用第三方的库

警告信息

1. 系统可能不会面向所有用户显示无边框画面

从 Android 15 开始,所有以 SDK 35 为目标平台的应用在默认情况下都将采用无边框画面。以 SDK 35 为目标平台的应用应处理边衬区,以确保其应用能够在 Android 15 及更高版本上正确显示。我们建议您调查此问题,留出时间对应用进行无边框设计测试,并对代码进行所需的更新。或者,您也可以调用 enableEdgeToEdge()(对于 Kotlin)或 EdgeToEdge.enable()(对于 Java)以实现向后兼容性。

2. 您的应用使用已弃用的 API 或参数来实现无边框设计

您使用的一个或多个 API 或您为无边框设计和窗口显示设置的参数已在 Android 15 中被弃用。您的应用使用了以下已弃用的 API 或参数:

  • android.view.Window.setNavigationBarColor
  • android.view.Window.setStatusBarColor
  • android.view.Window.getStatusBarColor
  • io.dcloud.common.DHInterface.ITitleNView.setStatusBarColor
  • LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
  • LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT

这些 API 或参数从以下位置开始:

  • com.dcloud.android.widget.TabView$6.run
  • com.dmcbig.mediapicker.PickerActivity.setTopAndBottomBarColor
  • com.dmcbig.mediapicker.PreviewActivity.setTopAndBottomBarColor
  • io.dcloud.WebAppActivity.onCreateSplash
  • io.dcloud.WebviewActivity.setImmersive
  • io.dcloud.b.onResume
  • io.dcloud.common.util.AppStatusBarManager.setImmersive
  • io.dcloud.common.util.AppStatusBarManager.setStatusBarColor
  • io.dcloud.common.util.TitleNViewUtil.updateTitleNViewStatus
  • io.dcloud.feature.gallery.imageedit.a.onCreate
  • io.dcloud.feature.nativeObj.photoview.PhotoActivity.fullScreen
  • f1.a.a
  • io.dcloud.common.util.AppStatusBarManager.setFullScreen

请停止使用这些 API 或参数,以便为适应 Android 15 的变化做好准备。


4 回复

收到,在处理
我加你QQ了 你通过一下


我也遇到了,该怎么处理呢?

在处理uni-app应用中遇到的谷歌审核提示与Kotlin不兼容导致的应用崩溃问题时,首先需要明确的是,uni-app本身是基于Vue.js开发的一套前端框架,它通常通过编译打包为原生应用(如Android的APK)进行发布。在这个过程中,uni-app会使用HBuilderX等工具将Vue代码转换为原生代码,包括Java或Kotlin代码(对于Android平台)。

以下是一个可能的解决方案,展示如何通过调整uni-app项目中的配置来尝试解决与Kotlin不兼容的问题。请注意,这只是一个示例,具体情况可能需要根据项目的实际结构和依赖进行调整。

  1. 检查并更新uni-app和HBuilderX版本: 确保你使用的uni-app和HBuilderX是最新版本,因为新版本可能已经修复了一些与Kotlin兼容性的问题。

  2. 修改manifest.json配置: 在uni-app项目的manifest.json文件中,你可以指定使用Java而非Kotlin进行Android原生代码的生成。虽然uni-app默认可能使用Kotlin,但你可以尝试显式地设置使用Java。

    {
      "mp-weixin": {},
      "app-plus": {
        "distribute": {
          "android": {
            "usingComponents": false,
            "compileOptions": {
              "enableKotlin": false  // 显式设置不使用Kotlin
            }
          }
        }
      }
    }
    
  3. 清理并重新构建项目: 在HBuilderX中,执行“发行”->“原生App-云打包”->“打包Android App”,并确保在打包设置中选择了正确的配置。在打包前,最好先执行“清理项目”操作,以确保所有旧的构建文件都被删除。

  4. 检查第三方插件和依赖: 如果你的项目中使用了第三方插件或依赖,确保它们也与你的配置兼容。有时候,第三方库可能依赖于特定版本的Kotlin,这可能会导致兼容性问题。

  5. 测试应用: 在修改配置并重新构建应用后,务必在多种设备和Android版本上进行充分测试,以确保应用在不同环境下的稳定性和兼容性。

  6. 提交审核: 在确认应用在不同环境下均能稳定运行后,再次提交应用至谷歌商店进行审核。

请注意,上述解决方案可能并不适用于所有情况,特别是如果问题是由特定的第三方库或复杂的项目结构引起的。在这种情况下,可能需要更深入地分析项目的依赖关系和构建配置。

回到顶部