Android更改packageName包名

如果需要把原有的app复制一份出来,新的app使用一个新的packageName,有如下几个步骤要做:

  1. 更改Manifest.xml中的packageName
  2. 更改Manifest.xml<activity><service><receiver><provider>的name为新的完整包名,不能使用简写
  3. 更改build.gradle中的applicationId
  4. 更改所有import了本项目中的R.class语句
  5. 更改所有import了本项目中的BuildConfig.class语句

    项目资源R.class的包名是根据packageName生成的

传统方式

修改上面1、2、3点比较简单,第4点需要进入每个activity/view/fragment进行修改,工作量很大,而且容易出错

效率方式

  • 先不修改1、2、3
  • 找到R.class文件的位置(一般在ApplicationRoot/build/generated/source/r/debug)(Android Studio)
  • 然后debug目录下建立新包名的目录
  • R.class移动到新的目录下,或者使用refractor->move,此时android studio会触发do refractor的逻辑,此过程会比较久
  • 检查activity/view/fragment的中import R.class是不是都已经指向新的包名
  • 再执行1、2、3

同样的方式应用到BuildConfig.class

补充注意

  • 如果有使用到””字符串中包含有包名,要自己手动进行修改
文章作者: Vincent Zhong
文章链接: http://www.itvincent.net/2017/04/26/android-rename-packagename/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 itVincent的博客