美文网首页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