天天看点

安卓修改application继承链导致的问题

作者:3tang

今天出渠道包,渠道包闪屏之后跳转到游戏直接挂了,爆以下错误

2023-07-06 09:29:03.874 7631-7631/? W/Bundle: Key ZS_APP_ID expected String but value was a java.lang.Integer.  The default value <null> was returned.
2023-07-06 09:29:03.875 7631-7631/? W/Bundle: Attempt to cast generated internal exception:
    java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
        at android.os.BaseBundle.getString(BaseBundle.java:1199)
        at com.xzg.x3dgame.X3DGameActivity.getMetaData(X3DGameActivity.java:1928)
        at com.chtech.x3dgame.zhisha.GamePlatformSdk._Qdinit(GamePlatformSdk.java:53)
        at com.chtech.x3dgame.zhisha.GamePlatformSdk.<init>(GamePlatformSdk.java:46)
        at com.chtech.x3dgame.zhisha.MainActivity.onCreate(MainActivity.java:19)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2023-07-06 09:29:03.877 7631-7631/? D/zsgame:  [ZSGameHttpSignGenerator]: generateSignString ===> json : {"app_id":"115","channel_id":"755","client_id":"16","ts":"1688606943875"}
2023-07-06 09:29:03.877 7631-7631/? D/zsgame:  [ZSGameHttpSignGenerator]: sb : POST&sdk%2Finit&app_id%3D115%26channel_id%3D755%26client_id%3D16%26ts%3D1688606943875&c87dc563a9107e2d2a10a6a7c801a759&79194953f74f21a70d7dc16d388531cf
2023-07-06 09:29:03.877 7631-7631/? D/zsgame:  [ZSGameHttpEngine]: Submit new task, id: 1
2023-07-06 09:29:03.877 7631-7631/? D/com.xzg.x3dgame.lib.PlatformHelper: init
2023-07-06 09:29:03.878 7631-7666/? D/ZSGameHttpRequester: Http request url: https://publish.sayouxi.com/sdk/init
2023-07-06 09:29:03.879 7631-7631/? D/ActivityState: onStart
2023-07-06 09:29:03.880 7631-7666/? D/zsgame:  [ZSGameHttpSignGenerator]: generateSignString ===> json : {"app_id":"115","channel_id":"755","client_id":"16","ts":"1688606943875","sign":"d019e67a3b736b8bd6ff30897cd83bdd"}
2023-07-06 09:29:03.880 7631-7666/? I/zsgame:  [ZSGameHttpRequester]: http post data: app_id=115&channel_id=755&client_id=16&sign=d019e67a3b736b8bd6ff30897cd83bdd&ts=1688606943875&
2023-07-06 09:29:03.882 7631-7631/? D/com.xzg.x3dgame.lib.PlatformHelper: onStart
2023-07-06 09:29:03.882 7631-7631/? D/ActivityState: onResume
2023-07-06 09:29:03.907 312-5694/? D/goldfish-address-space: claimShared: Ask to claim region [0x3ec000000 0x3ec965000]
2023-07-06 09:29:03.924 312-5694/? D/goldfish-address-space: claimShared: Ask to claim region [0x3ec965000 0x3ed2ca000]
2023-07-06 09:29:03.925 312-360/? D/goldfish-address-space: claimShared: Ask to claim region [0x3f1c2f000 0x3f24e0000]
2023-07-06 09:29:03.944 569-594/? I/ActivityTaskManager: Displayed com.zhanmo.sayouxi.st/com.chtech.x3dgame.zhisha.MainActivity: +270ms
2023-07-06 09:29:03.946 312-360/? D/goldfish-address-space: claimShared: Ask to claim region [0x3ec965000 0x3ed2ca000]
2023-07-06 09:29:03.962 312-360/? D/goldfish-address-space: claimShared: Ask to claim region [0x3f0000000 0x3f0965000]
2023-07-06 09:29:04.097 7631-7666/? D/zsgame:  [ZSGameHttpEngine]: Cancel old task, id: 1
2023-07-06 09:29:04.098 7631-7666/? I/zsgame:  [ZSGameHttpEngineTask]: run ---> response result: {"code":200,"msg":"成功","data":{"switch_status":0,"switch_channel_id":0,"switch_channel_key":0,"game_status":2,"h5_url":""}}
2023-07-06 09:29:04.099 7631-7631/? W/zsgame:  [zsgame]: s : {
      "init": "com.zsyx.channel.ZSInit",
      "login": "com.zsyx.channel.ZSLogin",
      "pay": "com.zsyx.channel.ZSPay",
      "submit": "com.zsyx.channel.ZSSubmit",
      "application": "com.zsyx.channel.ZSApplication"}
2023-07-06 09:29:04.099 7631-7631/? I/ST_FX_DEBUG_INFO: doInit
2023-07-06 09:29:04.099 7631-7631/? I/ST_FX_DEBUG_INFO: set initListener success
2023-07-06 09:29:04.099 7631-7631/? W/zsgame:  [zsgame]: onInit() : com.chtech.x3dgame.zhisha.MainActivity@cc52b6f
2023-07-06 09:29:04.099 7631-7631/? W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.AssetManager android.app.Activity.getAssets()' on a null object reference
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.stang.jhsdk.PluginFactory.loadComponentInfo(PluginFactory.java:97)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.stang.jhsdk.PluginFactory.init(PluginFactory.java:40)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.stang.jhsdk.STJHSDK.init(STJHSDK.java:93)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.stang.jhsdk.STJHSDK$1.run(STJHSDK.java:270)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at android.os.Handler.handleCallback(Handler.java:938)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at android.os.Looper.loop(Looper.java:223)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7656)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2023-07-06 09:29:04.099 7631-7631/? W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.app.Activity.getPackageManager()' on a null object reference
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.stang.jhsdk.SDKTools.getMetaData(SDKTools.java:71)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.stang.jhsdk.STJHSDK.init(STJHSDK.java:96)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.stang.jhsdk.STJHSDK$1.run(STJHSDK.java:270)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at android.os.Handler.handleCallback(Handler.java:938)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at android.os.Looper.loop(Looper.java:223)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7656)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
2023-07-06 09:29:04.099 7631-7631/? W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2023-07-06 09:29:04.100 7631-7631/? W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.app.Activity.getPackageManager()' on a null object reference
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at com.stang.jhsdk.SDKTools.getMetaData(SDKTools.java:71)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at com.stang.jhsdk.STJHSDK.init(STJHSDK.java:97)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at com.stang.jhsdk.STJHSDK$1.run(STJHSDK.java:270)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at android.os.Handler.handleCallback(Handler.java:938)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at android.os.Looper.loop(Looper.java:223)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7656)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
2023-07-06 09:29:04.100 7631-7631/? W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2023-07-06 09:29:04.100 7631-7631/? D/AndroidRuntime: Shutting down VM
2023-07-06 09:29:04.100 7631-7631/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.zhanmo.sayouxi.st, PID: 7631
    java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
        at com.stang.jhsdk.STJHSDK.init(STJHSDK.java:98)
        at com.stang.jhsdk.STJHSDK$1.run(STJHSDK.java:270)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
2023-07-06 09:29:04.102 569-5362/? W/ActivityTaskManager:   Force finishing activity com.zhanmo.sayouxi.st/com.chtech.x3dgame.zhisha.MainActivity           

一开始以为是闪屏那边替换smali代码导致,把打包程序的替换smali代码屏蔽,再次打包还是爆一样的问题。

安卓修改application继承链导致的问题

看报错信息分析就算context找不到了呗,怀疑是修改application导致的问题。就把修改application继承链的代码,还有清单渠道覆盖母包application name的打包程序屏蔽。再次出包,可以正常跑了。

分析原因:母包采用了代理application,然后打包程序寻找母包aplication找到的是代理application,调整application继承链之后,源头代理application不是真实母包的application,所以报错闪退

继续阅读