今天在做项目的时候遇到了一个问题,我们打算做微信登录,我是用友盟做的,在导入友盟的sdk之后,按照文档都配置好了,结果登录完微信之后没有走相应的回调。然后我重新看了下友盟的文档,发现给微信的WXEntryActivity设置name的时候必须包名要统一,否则就不会走正常的回调,于是我定好了问题所在。那么为什么会出现这个问题呢,这就需要引出今天的话题了。我在给WXEntryActivity设置name的时候是按照清单文件里的package来弄得,(我用的ide是android studio 我的appid不是写死的 测试版和正式版的后缀不一样),而我name那却是按package写死的。
首先我们要明白applicationId的含义是什么,applicationId在Android系统中是作为应用的唯一标识,即在一个Android设备中所有的应用程序的applicationId都是唯一的。这意味着,一旦你已发布的程序使用了这个applicationId,你就无法再修改它。如果修改了,那么这个应用程序就会被系统当作是一个全新的应用程序,和你之前的应用程序是相互独立的。
我们看一下清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test.app"
android:versionCode="1"
android:versionName="1.0" >
需要注意的是,我们在进行开发的时候,用到的一些三方sdk(例如友盟,百度等等)需要我们的包名,这的包名指得是applicationId而并非package name,当然在eclipse中也就没有区分了,因为它只有package name。
在android studio中设置applicationId有两种方式,如下图:
1.在gradle中修改:
2.图形界面修改:
ok ~