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:如何在组织集体或团队里得到认可

健康杂谈

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

相关推荐
cai_huaer3 小时前
BugKu Web渗透之 cookiesWEB
前端·web安全
lichong9514 小时前
Git 检出到HEAD 再修改提交commit 会消失解决方案
java·前端·git·python·github·大前端·大前端++
@yanyu6664 小时前
Tomcat安装与HTML响应实战
java·tomcat·html
友友马4 小时前
『 QT 』QT控件属性全解析 (一)
开发语言·前端·qt
不想上班只想要钱4 小时前
vue3+vite创建的项目,运行后没有 Network地址
前端·javascript·vue.js
流***陌5 小时前
手办盲盒抽赏小程序前端功能设计:兼顾收藏需求与抽赏乐趣
前端·小程序
Chen-Edward5 小时前
有了Spring为什么还有要Spring Boot?
java·spring boot·spring
岁月宁静5 小时前
在富文本编辑器中封装实用的 AI 写作助手功能
前端·vue.js·人工智能
金士顿5 小时前
为什么MainWindow.xaml绑定的datacontext,EtherCATSuiteCtrl.xaml直接用了?
前端