java - 无法为华为P10构建HMS Core插件ReactNative
问题描述
我正在尝试通过 npx react-native run-android 构建应用程序。一切似乎都很顺利,构建完成 100% 并且应用程序已安装在设备上。与此同时,Metro Bundler 也被推出,它的加载量也高达 100%。但是,当我点击启动它时,应用程序会立即崩溃。我已经使用 adb 捕获了日志,这些日志在下面共享。
06-25 10:07:58.403 8200 8200 I HMSSDK_BaseAdapter: baseCallBack.onComplete
06-25 10:07:58.404 8200 8200 I HMSSDK_HmsClient: receive msg status_code:0, error_code6003, api_name:push.gettoken, app_id:104458357|, pkg_name:my.app.package, session_id:*, transaction_id:104458357ttoken20210625100757996945883, resolution:null
06-25 10:07:58.405 8200 8200 E HMSSDK_HmsInstanceId: TokenTask failed, ErrorCode: 6003
06-25 10:07:58.408 8200 9162 E HMSSDK_AutoInit: Push init failed
06-25 10:07:58.409 8200 9162 I HMSSDK_RemoteService: remote service bind service start
06-25 10:07:58.423 8200 8200 I HMSSDK_HmsMessageService: start to bind
06-25 10:07:58.425 1427 1815 D SmartHeartBeat: isPendingAlarm, false, pkg:com.android.deskclock, action:com.android.deskclock.ALARM_ALERT,not pending alarm with AlarmClockInfo
06-25 10:07:58.425 1427 2392 V ActivityTaskManager: Activity idle: Token{a620457 ActivityRecord{6e892ac u0 my.app.package/.MainActivity t637}}
06-25 10:07:58.425 8200 8200 I HMSSDK_RemoteService: remote service onConnected
06-25 10:07:58.426 1427 1815 I JobScheduler.Time: realNextJobExpiredElapsedMillis: 814102
06-25 10:07:58.426 8200 8200 I HMSSDK_RemoteService: remote service unbindservice
06-25 10:07:58.428 8200 8200 I HMSSDK_HmsMessageService: handle message start
06-25 10:07:58.429 8200 8200 I HMSSDK_HmsMessageService: onNewToken
06-25 10:07:58.429 1427 1815 D SmartHeartBeat: isPendingAlarm, false, pkg:com.android.deskclock, action:com.android.deskclock.ALARM_ALERT,not pending alarm with AlarmClockInfo
06-25 10:07:58.430 1427 1815 I JobScheduler.Time: realNextDelayExpiredElapsedMillis: 813602
06-25 10:07:58.430 8200 8200 I HMSSDK_HmsMessageService: doOnNewToken:transactionId = null , internalCode = 6003,subjectId:null,proxyType:null
06-25 10:07:58.430 8200 8200 I HMSSDK_HmsMessageService: Apply token failed, subId: null
06-25 10:07:58.432 8200 8200 I HMSSDK_HmsMessageService: onTokenError to host app.
06-25 10:07:58.432 8200 8200 W HmsPushMessageService: ** onTokenError **
06-25 10:07:58.433 8200 8200 I BlockMonitor: dispatchingThrewException In MainThread
06-25 10:07:58.433 8200 8200 D AndroidRuntime: Shutting down VM
06-25 10:07:58.434 8200 8200 I QarthLog: [PatchStore] createDisableExceptionQarthFile
06-25 10:07:58.434 8200 8200 I QarthLog: [PatchStore] create disable file for my.app.package uid is 10173
--------- beginning of crash
06-25 10:07:58.435 8200 8200 E AndroidRuntime: FATAL EXCEPTION: main
06-25 10:07:58.435 8200 8200 E AndroidRuntime: Process: my.app.package, PID: 8200
06-25 10:07:58.435 8200 8200 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at com.huawei.hms.rn.push.logger.HMSLogger.getInstance(HMSLogger.java:100)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at com.huawei.hms.rn.push.remote.HmsPushMessageService.onTokenError(HmsPushMessageService.java:107)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at com.huawei.hms.push.HmsMessageService.a(HmsMessageService.java:34)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at com.huawei.hms.push.HmsMessageService.a(HmsMessageService.java:29)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at com.huawei.hms.push.HmsMessageService.handleIntentMessage(HmsMessageService.java:7)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at com.huawei.hms.push.HmsMessageService$a.handleMessage(HmsMessageService.java:7)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:110)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at android.os.Looper.loop(Looper.java:219)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8349)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
06-25 10:07:58.435 8200 8200 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
06-25 10:07:58.436 1427 9266 I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
06-25 10:07:58.436 1427 9265 I QarthDisFileCreator: pattern not match
06-25 10:07:58.442 1427 2026 E WifiService: enforceCanAccessScanResults: hiding ssid and bssidUID 10173 has no location permission
06-25 10:07:58.443 933 3795 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.444 8200 8200 I HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=my.app.package#10173#0
06-25 10:07:58.444 8200 8200 I HwApiCacheMangerEx: need clear apicache,because volumes changed,oldCnt=1 newCnt=1
06-25 10:07:58.444 933 3794 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.444 933 3795 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.444 933 3794 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.444 933 3795 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.444 933 3794 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.444 933 3794 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.444 933 3794 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.444 933 3794 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.444 8200 8200 I HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=my.app.package#10173#256
06-25 10:07:58.444 8200 8200 I HwApiCacheMangerEx: need clear apicache,because volumes changed,oldCnt=1 newCnt=1
06-25 10:07:58.445 933 3794 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.445 933 3794 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.445 933 3794 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.445 933 3794 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.445 933 3794 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.445 8200 8200 I HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=my.app.package#10173#0
06-25 10:07:58.445 8200 8200 I HwApiCacheMangerEx: need clear apicache,because volumes changed,oldCnt=1 newCnt=1
06-25 10:07:58.445 933 7249 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.445 933 7249 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.445 933 7249 E : FaultDetect: FaultEngineTracePrintf return.
06-25 10:07:58.446 8200 8200 I HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=my.app.package#10173#256
06-25 10:07:58.446 8200 8200 I HwApiCacheMangerEx: need clear apicache,because volumes changed,oldCnt=1 newCnt=1
06-25 10:07:58.446 933 7249 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.446 933 7249 I chatty : uid=0(root) RFD_TASK2 identical 2 lines
06-25 10:07:58.446 933 7249 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.446 8200 8200 I HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=my.app.package#10173#0
06-25 10:07:58.446 8200 8200 I HwApiCacheMangerEx: need clear apicache,because volumes changed,oldCnt=1 newCnt=1
06-25 10:07:58.447 8200 8200 I HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=my.app.package#10173#256
06-25 10:07:58.447 8200 8200 I HwApiCacheMangerEx: need clear apicache,because volumes changed,oldCnt=1 newCnt=1
06-25 10:07:58.447 933 7249 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.448 933 7249 I chatty : uid=0(root) RFD_TASK2 identical 4 lines
06-25 10:07:58.449 933 7249 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.450 2007 2182 E : [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
06-25 10:07:58.450 2007 9261 I HttpHelper: [I/HMSCore/HttpHelper 2007:303 SourceFile:83] Call execute end.
06-25 10:07:58.450 2007 3496 D LogWrite: wtf Exception
06-25 10:07:58.450 2007 9261 E OpenGWTask: [E/HMSCore/OpenGWTask 2007:303 SourceFile:330] onPostExecute, get scope failed, certFingerprint is empty, appID:104458357, resultDesc:httpCode=200,nspStatus=0,errorText=,jsonResult=OK
06-25 10:07:58.450 2007 3496 D LogWrite: wtf Exception
06-25 10:07:58.451 933 7249 E : FaultDetect: DumptoolPrintf return.
06-25 10:07:58.451 2007 6660 I NetworkSdk_HianalyticsHelper: [I/HMSCore/NetworkSdk_HianalyticsHelper 2007:198 SourceFile:28] Core-Connect-6 -->NetworkKit_report_ha_0|null|com.huawei.hms.framework.common.hianalytics.HianalyticsHelper|isEnableReportNoSeed|9|user experience involved needs to be opened
06-25 10:07:58.451 2007 6660 I NetworkSdk_DefaultRCEventListener: [I/HMSCore/NetworkSdk_DefaultRCEventListener 2007:198 SourceFile:28] Core-Connect-6 -->NetworkKit_report_ha_0|SourceFile|bmg|bs|278|HianalyticsHelper report disable
看看 HMS Core 节点模块中的代码,我试图弄清楚它可能是什么。似乎上下文还没有准备好,并且 Activity 需要更长的时间才能“准备好使用”,而插件试图过早地访问它。不管我的假设是否正确,我都不知道如何解决这个问题。
/**
* Returns the instance of this class.
*
* @param context Context object
* @return HMSLogger instance
*/
public static synchronized HMSLogger getInstance(final Context context) {
if (instance == null) {
synchronized (HMSLogger.class) {
if (instance == null) {
instance = new HMSLogger(context.getApplicationContext());
}
}
}
return instance;
}
环境的配置是这样的:
- 节点:v10.18
- @hmscore/react-native-hms-push:^5.1.1-301
- 反应原生:0.63.2
我按照华为官方文档中的安装说明进行操作。
解决方案
推荐阅读
- c++ - C++ Multipath Inheritance : Why the access using Base class scope is non-ambiguous?
- java - 跨微服务的事务
- ruby-on-rails - @order.save 的未定义方法“item_id”
- android - 在约束布局中的按钮上重叠图像视图
- python-3.x - 如何在google sheet api中使用范围?
- java - 自定义 k3 通过 ehternet 电缆连接到路由器,通过 java 打印收据
- node.js - npm install git+ssh 在 docker (node16) 中失败
- c# - 如何从 lambda 表达式中为 MemberAccessExpressionSyntax 从 SemanticModel 获取 TypeInfo?
- dart - 如何在 Dart 中使用头文件
- bash - 无法通过变量将项目添加到数组:未定义于
,