美文网首页Android开发学习
全局替换包名 & 配置WXEntryActivity使用别名

全局替换包名 & 配置WXEntryActivity使用别名

作者: 一个冬季 | 来源:发表于2019-05-22 18:03 被阅读0次
参考文献

用<activity-alias/>让配置WXEntryActivity更爽
Android中applicationId与package name的区别
Android Studio中manifest文件中的package包名和module中的build.gradle中applicationId的区别

需求1

公司需要我拿最基础的Anroid的版本来做修改,改成另外的一个项目,改项目避免不了修改文件名称、包名

操作步骤(不配置WXEntryActivity的方式)

比如我最基础的Android包名为com.gaobaseshop.mall,我android文件夹的名字为java/com/gaobaseshop/mall
注意一点,包名,可以跟文件夹的名字不同,建议最好保持统一,
我需要将包名com.gaobaseshop.mall,替换为com.gaoabc.hahaha
1、关闭andriod Studio,打开文件夹,比如D:/androidData/xxxxComproject/app/src/main/java/com.gaobaseshop.mall,我们将加粗的部分进行替换为com.gaoabc.hahaha

2、进入android Studio,打开build.gradle修改applicationId为com.gaoabc.hahaha,修改清单文件里面的package为com.gaoabc.hahaha

3、项目切换到Project形式,右键项目找到Replace in Path ,出现一个弹窗,第一栏写入
com.gaobaseshop.mall,第二栏写入com.gaoabc.hahaha,点击replace All按钮

4、继续替换xml里面的包名,找到src目录,右键找到Replace in Path,步骤又继续同3一样了

注意点

1、注意xml里面自定义View的路径是否跟文件夹的路径相同
2、注意R文件,需要跟清单文件和applicationId里面的package是相同的
3、清单文件里面的Activity路径,最好用绝对路径
4、注意清单文件里面的FileProvider,需要使用 ${applicationId}.fileprovider

需求2

需要发多个APK,每个APK的包名都要不同,然后我们还需要微信的授权登录功能

蛋疼的地方

如果我们每个APK都采用最原始的方式,更换包名、路径名、各种引用控件的地址、这耗时。。。恐怖的一批,而且还不敢保证某个地方是否替换到。

解决办法(配置WXEntryActivity的方式)

1、我们只更改build.gradle里面的applicationId为新的包名
2、继续保持AndroidManifest.xml 里面的package不变,路径不变,对于要唤醒微信我们使用别名的方式

 <!-- 微信分享-->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.AppCompat.NoActionBar.Transparent" >
        </activity>

  <!--编写别名-->
        <activity-alias
            android:name="${applicationId}.wxapi.WXEntryActivity"
            android:exported="true"
            android:targetActivity=".wxapi.WXEntryActivity" />
注意点

1、微信第一次授权成功后,不会再次弹出授权界面,因为微信那边有缓存了
2、我们在配置WXEntryActivity的时候,都会这样写

相关文章

网友评论

    本文标题:全局替换包名 & 配置WXEntryActivity使用别名

    本文链接:https://www.haomeiwen.com/subject/hqzuzqtx.html