• 更改包名与applicationID(两者区别)


    • 我们在进行开发的时候,用到的一些第三方sdk需要我们的包名,这的包名指得是applicationId而并非package name,当然在eclipse中也就没有区分了,因为它只有package name。

    重命名包名的方法如下:

    • 在java 文件夹下新建一个package,名字随便取,如com.dc.zsn.app。
    java文件夹所在目录.png
    • 将之前写好的类全部选中,并拖拽到新的包中来,此时项目中的所有用到包名的地方都会随之更改,自己再手动的更改一下AndroidManifest.xml文件中manifest下的package就好了;如果拖拽不成功,就去项目根目录下,全部选中后,ctrl+v拷贝一下,然后手动删除代码中的错误导包,自动生成import+包名(前提是配置了自动导包)。

    • 将之前的包删掉就可以了。

    参考链接:https://www.jianshu.com/p/b260b051cb2a
    来源:简书

    ————————————————————————————————————————————————————————————————————————
     
    更改applicationID
    啊改代码改到最后老是出错,原来是applicationID更改产生的问题!!!

     1.一开始我以为,

    applicationID存在于的地方

    一个在 build.gradle(app)中,applicationId "xt.car"

    一个在BuildConfig.java中,   public static final String APPLICATION_ID = "xt.car";

    2.后来发现这样也没用。好叭感觉和依赖库有关,太难找了,不找了 /

    不能从其他BuildConfig里面去取application id,因为打包后使用的只有app模块的id。
    依赖库的application id不能随便改的,你一改,依赖库有类引用R文件的话全部得手动改。
    依赖库的application id跟包名是没有任何关系的。
    依赖库里面想要获得application id,必须通过context.getPackageName,或者context.getApplicationInfo().packageName获得。依赖库的工具类,大部分都必须传Context环境,除非一些代码跟环境完全无关。

    参考https://blog.csdn.net/he_xiang_/article/details/81080507

    应用ID与包名区别

    每个Android应用都有一个唯一的应用ID.在Android设备和市场上,这个ID是你应用的唯一标识.若想在市场上更新应用,新应用的ID必须和原来apk的应用ID一致.所以一旦发布了应用,就不能再改变应用ID.

    在Eclipse中没有applicationId这个概念,在Eclipse中applicationId即等同于包名。但是到了Android Studio中,这两个概念做个区分。包名的定义在清单文件中:

    1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"

    2. package="com.example.myapplicationtest" >

    应用ID是在moudle层的build.gradle中定义,applicationId值即为应用ID,如下所示:

    1. android {

    2. defaultConfig {

    3. applicationId "com.example.myapplicationtest"


    在Android Studio中创建一个新项目时,applicationId默认是和项目的包名一致的。所以常常有开发者会将两者混淆,以为它们是一个概念。实际上,应用ID和包名是相互独立的。改变包名不会影响应用ID,反之亦然。

    通常Android的应用ID与包名是绑定的,所以在Android API中,一些方法和参数从名称上看似乎它们返回的是包名,事实上它们返回的是应用ID值.例如,Context.getPackageName()方法返回的是应用ID,而不是包名。不信我们来看:


    1. 图中,包名是:com.example.myapplicationtest   应用ID:com.example.myapplicationtest.id

      应用ID的命名并不是随意的,它至少需要需遵循以下限制:

      • 应用ID至少包含两部分(也就是说至少有一个点,如com.example);

      • 每部分必须以字母开头;

      • 所有字符必须是字母数字或者下划线[a-zA-Z0-9_]

      • app的标识,一旦定义不能随意改变

      注意:

      如果你使用了webview,请使用包名作为应用ID的前缀,否则,有可能会报错.

    修改包名

    默认情况下,包名与应用ID是相同的。当然,开发者也可以对包名进行修改.如果开发者想要修改包名的话,注意项目目录结构必须与AndroidManifest.xml中package属性的包名一致.

    1. <?xml version="1.0" encoding="utf-8"?>

    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"

    3. package="com.example.myapplicationtest"

    4. android:versionCode="1"

    5. android:versionName="1.0" >

    package值有两个作用:

    • 它为R.java文件提供了命名空间,例如R class的包名为com.example.myappcationtest.R

    • 决定manifest中声明的class的相对名称。如:manifest中声明的<activity android:name=".MainActivity"> 的真实路径为:com.example.myapplicationtest.ManiActivity

    如果开发者想修改包名,必须确保manifest中package值也做了同步修改.

  • 相关阅读:
    我们工作到底为了什么
    阿里云是如何做好高并发的
    织梦cms PHPcms 帝国cms比较
    正确修改MySQL最大连接数的三种好用方案
    微信开发的几个小功能
    命令行下运行php的方法和技巧
    PHP去除连续空格
    ajax,django
    web框架,HTTP协议
    Django 模型Model层2
  • 原文地址:https://www.cnblogs.com/xtxt1127/p/12367884.html
Copyright © 2020-2023  润新知