请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

自定义Application不执行

老师请教一个问题:在多渠道定制开发的时候,每个渠道会有一些定制的资源、代码、manifest。这些定制化的配置会影响 自定义 MyApplication 的执行吗?
或者说什么情况会导致 自定义的 MyApplication 不执行(已经在manifest中配置具体路径),而是去执行系统自带的Application?

正在回答 回答被采纳积分+3

1回答

allenfeng 2021-06-16 12:11:28
具体需要查看一下多渠道配置的内容中,有没有更改到manifest中application的类路径的配置。 若某个渠道中自定义application没有生效,可以使用apktool反编译这个渠道对应的APK,看看manifest的配置是不是对的. ...
0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉4400366 #1
    意思就是说自定义Application不执行,只有一种可能,那就是在manifest中没有配置正确的路径对吗?
    回复 有任何疑惑可以回复我~ 2021-06-16 12:27:44
  • allenfeng 回复 提问者 慕粉4400366 #2
    1. 不执行的表现是什么?你是如何确定没有执行的?
    2. 正确注册了Application的子类到manifest后,在应用启动时会被系统创建对应的实例并回调onCreate等方法
    回复 有任何疑惑可以回复我~ 2021-06-17 07:56:01
  • 提问者 慕粉4400366 回复 allenfeng #3
    项目里用到 Sp存储,需要使用 Context  , 在 MyApplication 进行如下初始化 
    private Context mContext;
        @Override
        public void onCreate() {
            super.onCreate();
            mContext = this;
        }
    
    结果使用Sp 的时候  Context  空指针,mContext;并未被初始化;
    
    通过 Log 查看的
    if (application instanceof MyApplication) {
                    MyApplication app = (MyApplication) application;
                    Log.e("request_life", "当前 Application 信息:" + app);
                } else {
                    Log.e("request_life", "当前 Application 信息:" + application);
                }
    
    日志显示是 系统的 Application 而不是 自行以的 MyApplication 
    
    但是这种情况只出现在个别手机上,ASUS ASUS_A001D  Android 9 同样的代码跑在其他手机正常
    回复 有任何疑惑可以回复我~ 2021-06-18 18:29:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信