Android修改项目包名

一 Android Studio 修改过程

修改项目包名,实现不覆盖安装(如果只是想不覆盖安装,更改build.gradle里面的包名就OK了,那这篇博文到这里就可以结束了,如果希望项目层次的包名也更改的话,请往下看)

1.首先新建一个项目,默认结构如下,红色的就是包名

2,更改显示项目结构方式,首先1,点击齿轮的图案。然后把第二步中的勾去掉

3更改项目结构显示后如下:

4,选中要修改的报名,快捷键shift + F6修改包名,选择Rename package

5,填好包名后点击Refactor

6 然后选择图中的Do Refactor

7。如下我们就修改好了包名

8。然后手动修改app build的applicationId.改成和我们之前修改的包名

9激动人心时刻,最后一步。包名都一样后,点击Sync Now。等一会,就这样大功告成

温馨提示:相信这样你已经包名修改成功了,运行一下

如果不行就clear项目和Rebuild一下项目。

另外说明一点,在 Studio 里面我们的 getPackageName 对应的是 applicationId , 而manifest 的那个package,在这里的作用其实是为了引用内部资源文件,以及保证 Activity 等源文件的路径正确而已,所以,在 Studio 中修改发布程序包名,则只需要在 build 文件中修改 applicationId 就可以了

参考:

https://www.cnblogs.com/jpfss/p/9875582.html

二  eclipse的modules的相关概念

在还没有从eclipse转到Android Studio开发的时候,我们都知道一个项目的包名定义在AndroidManifest文件中的package,如下图:


我们来看下定义:

包名(package):指定本应用内java主程序包的包名。当没有指定apk的文件名时,编译后产生程序包将以此命名。本包名应当在Android系统运行时唯一。 

在两个不同的Application之间,用Application A的Activity A调用Application B的Activity B的时候,在AndroidManifest.xml中的package名称不能一样,否则安装完一个apk之后,再去安装另一个Application的apk的时候,会提示不存在,会有冲突,(install的时候,以内部package名字等信息为准,不是apk的名字为准),即使apk名字不同,AndroidManifest.xml中的package名相同会提示冲突。

所以,不同的Application,AndroidManifest.xml中的package名一定要不同,当一个Application中有多个package的时候,以这个Application的入口(MAIN+LAUNCHER的intent-filter)所在的包名为AndroidManifest.xml中的package名。如果一个Application没有入口程序,如packages/apps/Bluetooth,那以哪个包名作为AndroidManifest.xml中的package名都可以。

同时R文件对应的引用地址也是包名地址,所以每次更改工程包名我都十分痛苦,要替换所有文件中R文件的引用路径,如下图:


但是Android Studio却拯救了我,当我把工程从eclipse转到Android Studio之后,他出现了一个新的定义:ApplicationId,他允许我们在不改变AndroidManifest文件中的package情况下,更改applicationID,不同的applicationID相当于不同的包名程序,具体官方文档翻译:http://blog.csdn.net/maosidiaoxian/article/details/41719357

 
可以清楚地看到,我们的package包名在工程中的作用只剩下索引R文件,而ApplicationId成为了真正的包名,并且要注意的是,在集成jpush第三方sdk的时候,需要我们提供包名等信息,这里要引用applicationId

因此,总的来说就一句话:在Android Studio中build.gradle构建工程后,manifest文件中的packagename只用作R文件的引用包名,而applicationId变成了这个程序真正的包名。

原文链接:https://blog.csdn.net/qq1072313099/article/details/52872800

三 react-native修改包名

3.1 两个java文件

  android/app/src/main/java/com/PROJECT_NAME/MainActivity.java
  android/app/src/main/java/com/PROJECT_NAME/MainApplication.java
修改第一行

package com.oc.objective;

3.2 安卓的描述文件

修改第二行,把package的至改为com.oc.objective

  android/app/src/main/AndroidManifest.xml
 

package="com.oc.objective"

3.3 两个打包脚本

3.3.1 android/app/BUCK

修改两个package的值package = 'com.oc.objective'

android_build_config(
    ...
    package = "com.oc.objective",
)
 
android_resource(
    ...
    package = "com.oc.objective",
    ...
)

3.3.2 android/app/build.gradle

修改applicationId

defaultConfig {
    applicationId "com.oc.objective"
    ...
}


修改完成后,命令行进入android目录,执行./gradlew clean清除缓存即可(windows上是 gradlew.bat)

3.3.3 java文件放入包名匹配的目录

至此差不多修改完成,能够打包出正确包名的apk。不过在开发过程中,如果需要自动link原生模块,会导致命令出错无法link成功。所以还是建议按照java的规范把java文件放入包名匹配的目录中。

把两个java文件移入新创建的目录android/app/src/main/java/com/oc/objective/里面,就能够react-native link了。

  android/app/src/main/java/com/PROJECT_NAME/MainActivity.java
  android/app/src/main/java/com/PROJECT_NAME/MainApplication.java

其他

react-native修改xcode项目名

原文链接 https://www.cnblogs.com/qiqi715/p/9479004.html
————————————————

转载于:https://blog.csdn.net/qq_34823218/article/details/118379427

猜你喜欢

转载自blog.csdn.net/weixin_42602900/article/details/125209200