You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity导出Android平台2D横版游戏运行报错:java.lang.NoClassDefFoundError

解决Unity导出Android时java.lang.NoClassDefFoundError: Landroid/support/v4/app/FragmentActivity报错

这个错误核心原因是AndroidX与旧版Android Support Library依赖冲突,或是Unity的Android构建配置未正确处理依赖转换。以下是具体解决步骤:

1. 启用Unity的AndroidX与Jetifier支持

  • 打开Unity编辑器,进入Edit > Project Settings > Player
  • 切换到Android标签页,在Publishing Settings区域:
    • 勾选Custom Main Gradle Template和Custom Base Gradle Template(生成自定义Gradle模板文件)
    • Unity 2020+版本直接找到AndroidX选项,勾选Use AndroidX和Enable Jetifier
    • 旧版Unity需打开生成的mainTemplate.gradle文件,在android代码块内添加:
      android.useAndroidX=true
      android.enableJetifier=true
      

2. 排查并替换旧依赖

  • 打开baseProjectTemplate.gradle文件,检查所有依赖项:
    • 将所有com.android.support:开头的依赖替换为对应AndroidX库,比如com.android.support:support-v4替换为androidx.core:core-ktx:1.7.0(版本号可按需调整)
    • 若第三方插件硬编码旧版Support Library依赖,需手动修改插件的Gradle配置(Jetifier可自动转换大部分旧依赖,但特殊情况需手动调整)

3. 清理缓存并重新构建

  • 删除项目根目录下的Library文件夹,重启Unity让其重新生成项目依赖
  • 进入File > Build Settings > Android,点击Clean Build后重新导出APK/AAB
  • 导出完成后,可用Android Studio的APK Analyzer检查包内是否包含androidx.fragment.app.FragmentActivity类,确认依赖转换成功

4. Google Play上传校验

  • 确保上传的是重新构建后的AAB/APK文件,避免上传缓存的旧构建包
  • 在Google Play Console中,检查应用版本号、签名信息与本地构建包一致,确认未上传错误版本

内容的提问来源于stack exchange,提问作者IncredibroXP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 13:07:31