Android studio 修改包名

在 Android Studio 里把 package="com.fhvideo.phone" 整体改掉 (例如换成 com.mycompany.newapp)分两步走:

  1. 源码目录结构package 声明 一致
  2. build.gradle 的 applicationIdAndroidManifest.xml 的 package 同步(否则安装时会当成全新应用)

下面给出 最简无坑流程,全程 2-3 min,复制即可用。


一、一键重命名(IDE 自带)

  1. 切到 Project 视图 → 展开 java/com.fhvideo.phone
  2. 右键 phone 文件夹 → Refactor → Rename → 选 Rename package
    输入新包名最后一级(如 newapp)→ Refactor
  3. 在弹出 Find Refactoring 窗口里点 Do Refactor
    → IDE 会自动把
    • 目录结构
    • 所有 .kt / .java 文件的 package
    • 所有 import com.fhvideo.phone.*
      全部批量改掉。

二、修改顶层包名(com.fhvideo → com.mycompany)

如果 整段包名都要变(不止最后一级):

  1. 打开 Project 视图,逐层 Refactor → Rename 每一级文件夹(先改 fhvideomycompany,再改 phonenewapp
  2. 或者 一次性写法
    com.fhvideo.phone 任意文件内
    把光标放到 package com.fhvideo.phone 行 → Shift+F6 → 输入 com.mycompany.newappRefactor
    Android Studio 2023.1+ 会弹出 "Rename directories accordingly" → 勾选 → Refactor
    即可一次性把目录 + 文件 + import 全部替换。

三、让构建文件同步

  1. build.gradle(模块级)

    gradle 复制代码
    android {
        namespace 'com.mycompany.newapp'          // 新增 AGP 7.0+ 必填
        defaultConfig {
            applicationId "com.mycompany.newapp" // 应用 ID 改成一致
            ...
        }
    }
  2. AndroidManifest.xml
    不需要 再写 package="..."(AGP 7.0+ 用 namespace 代替),若旧项目还有这一行可删掉或一起替换。

  3. Sync → Clean → Rebuild。


四、防坑检查清单

检查点 操作
src/*/java/ 目录结构 必须和包名完全一致
applicationId 与新的包名保持一致,否则商店会识别成新应用
activity-alias / provider / receiver 如果 Manifest 里写死旧包名,要 Replace in Path 批量替换
第三方 SDK 里写死包名 例如微信 WXEntryActivity 必须在 wxapi 文件夹下,需手动拖目录
google-services.json / agconnect-services.json 若用到 Firebase/华为 HMS,要重新下载配置文件并替换

五、一行命令验证

bash 复制代码
./gradlew :app:assembleDebug

构建成功后 APK 解析 看包名:

bash 复制代码
aapt dump badging app/build/outputs/apk/debug/app-debug.apk | grep package

输出应为:

复制代码
package: name='com.mycompany.newapp' versionCode='1' versionName='1.0'

→ 完全一致即大功告成。


一句话总结

IDE Refactor(Shift+F6)(改源码目录 + import)→ build.gradle 里 namespace & applicationId 同步 → Clean & Rebuild,三步走完,包名就彻底换成新的了。

更多阅读

困住我们一直在经济底层的到底是什么?

大前端++

AI 对大前端项目的冲击,【大前端++】来抵御
【混合开发】进阶到【大前端++】
【大前端++】几大特征
【大前端++】前端、大前端、大前端++的区别有哪些?

Android推荐阅读

Cannot fit requested classes in a single dex file (# methods: 93047 > 65536)
【Android】开发者模式启用

开发工具链推荐

API开发工具postman、国内xxapi和SmartApi的性能对比

心法杂谈

【心力建设】《毛选》里的心法

【心力建设】3:如何在组织集体或团队里得到认可

健康杂谈

【论健康】怎么才算健康(健康的本质)
【论健康】健康的不可能三角

相关推荐
小雨下雨的雨1 小时前
井字棋AI机器人实现详解 - Minimax算法实战-鸿蒙PC Electron框架完成
前端·人工智能·算法·华为·electron·鸿蒙
xieliyu.4 小时前
Java算法精讲:双指针(三)
java·开发语言·算法
明夜之约4 小时前
Spring Boot 自动装配源码
java·spring boot·后端
Leaton Lee4 小时前
Spring Boot分层架构详解:从Controller到Service再到Mapper的完整流程
java·spring boot·后端·架构
Jinkxs4 小时前
Resilience4j- 与 Spring Boot 快速集成:自动配置与基础注解使用
java·spring boot·后端
辣机小司4 小时前
【踩坑记录:Spring Boot 配置文件读取值不一致?警惕 YAML 的“八进制陷阱”与 SnakeYAML 版本之谜】
java·spring boot·后端·yaml·踩坑记录
数智工坊4 小时前
机器人运动控制:采样、优化与学习三大流派深度对比与实战
android·学习·机器人
ZC跨境爬虫5 小时前
跟着 MDN 学JavaScript day_7:数学运算与逻辑判断实战测试
开发语言·前端·javascript·学习·ecmascript
fangdengfu1235 小时前
ES分析系统各个服务日志占用量
java·前端·elasticsearch
云烟成雨TD5 小时前
Spring AI 1.x 系列【51】可观测性技术选型
java·人工智能·spring