在清单文件中有一个包名,如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="a.b.c">
。。。
</manifest>
这个包名的作用是用于IDE生成资源文件的包名,比如:
a.b.c.R.id
a.b.c.R.string
a.b.c.R.layout
a.b.c.BuildConfig
在BuildConfig中有一个属性:DEBUG,可用于判断当前App是Debug版本还是Release版本,如果一个库项目清单文件中的包名和app项目清单文件中的包名是一样的,则在App运行时,访问的a.b.c.BuildConfig是库项目中生成的,如果库项目是使用release版本的,则在App中访问到的BuildConfig.DEBUG属性为ture,而我们在App项目中,使用这个属性是为了要判断App是Debug版本还是Release版本,而不是要判断库项目是什么版本,所以,为了预防这种情况,要把库项目和App项目的清单文件中的包名设置为各不一样的。