当前位置:   article > 正文

node打包时遇到的问题荣耀 honor 阿里 233 4399 vivo_node打包打不了

node打包打不了

快手

快手登录新增错误码

在这里插入图片描述

Windows删除文件夹问题 删除文件时失败:提示名字过长

这种情况下,可以修改目录的文件名。比如d://123123123//123456.txt,可以修改为d://1//123456.txt,完美解决问题。

快手渠道更改图片背景的网址

https://www.aigei.com/tool/image/bg

资源问题

快手联运包kwai有android-base版,android-base(androidx)版.
由于kwai(androidx)版引入了androidx的相关依赖以及appcompat等,而我们聚合sdk demo以及游戏工作室中使用了android-support-v4。存在资源冲突,所以我们接入android-base版。
使用android-base版时,由于kwai android-base版中使用了appcompat,这个资源在android-support-v7及以上才有,所以需要引入v7依赖。引入v7依赖时,android-studio工程会自动下载v4包,v7引入的v4包与demo(游戏)的v4包会存在冲突,因此,需要下载排除v4之后的v7包。
使用排除v4之后的v7包(V28.0.0)+ kwai android-base版 + 聚合sdk v4包后 + 快手在线依赖后,打出的包运行时,会提示android:lifecycle相关错误,因为kwai联运包中使用了生命周期相关方法而引用了android:lifecycle依赖。这个依赖应该在android v4(v28.0.0)中,而聚合sdk demo中的v4里没有这些方法,而恰好,快手提供的离线资源依赖中包括这些依赖包,所以最终快手 资源方案为:
排除v4之后的v7包(V28.0.0)+ kwai android-base版 + 聚合sdk v4包后 + 快手在线依赖 + 快手离线资源包中的lifecycle(部分资源,看缺少那部分就引入哪部分)。

资源问题更新

  • 1、使用d8自动分包方案后,快手的资源出现了问题。

按照快手要求导入资源进行资源导入时,会提示类缺失,

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/arch/lifecycle/ProcessLifecycleOwner;
  • 1

经检查,此资源是包括在apk中主dex中的,存在apk中却没找到(这点确实存在困惑)
在这里插入图片描述
lifecycle资源使用快手的离线资源则没有此问题。
由于appcompat-v7与android.arch.lifecycle存在耦合关系,
在这里插入图片描述
所以多AAR方案引入appcompat-v7时需要进行排除

embed ('com.android.support:appcompat-v7:28.0.0'){exclude group: 'com.android.support',module: 'support-v4' exclude group: 'android.arch.lifecycle' exclude group: 'android.arch.core'}
  • 1

此外由于android.arch.persistence.room:runtime:1.1.1与android.arch.lifecycle存在耦合关系,所以多AAR方案引入android.arch.persistence.room也需要将android.arch.lifecycle排除:

embed ('android.arch.persistence.room:runtime:1.1.1'){exclude group: 'com.android.support' exclude group: 'android.arch.core'}
  • 1

目前的解决方案是这样:
最终资源为 多AAR方案资源 + 快手离线资源
(后续有待研究点是:多AAR打包方案引入的资源与快手离线资源版本一致,但是多AAR打包方案中导入部分资源无效)
在这里插入图片描述

  • 2、最终资源的形式如下:
    最终资源为 多AAR方案资源 + 快手离线资源
			embed 'com.squareup.okhttp3:okhttp:3.10.0'
			embed 'com.google.protobuf.nano:protobuf-javanano:3.1.0'
			embed 'com.getkeepsafe.relinker:relinker:1.3.0'
<!-- 			embed 'android.arch.lifecycle:extensions:1.1.1'
 -->			
			embed 'com.google.code.gson:gson:2.8.5'
			embed 'io.reactivex.rxjava2:rxjava:2.1.9'
			embed 'io.reactivex.rxjava2:rxandroid:2.0.1'
			embed 'org.greenrobot:greendao:3.1.1'
			embed 'com.google.dagger:dagger:2.23'
			embed ('android.arch.persistence.room:runtime:1.1.1'){exclude group: 'com.android.support' exclude group: 'android.arch.core'}
			embed 'com.jakewharton.rxrelay2:rxrelay:2.0.0'
			
<!-- 			embed ('com.android.support:support-annotations:28.0.0'){exclude group: 'com.android.support',module: 'support-v4'}-->		
			embed 'com.google.guava:guava:24.0-android'
			embed 'com.squareup.retrofit2:retrofit:2.4.0'
			embed 'com.squareup.retrofit2:converter-gson:2.4.0'
			embed 'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
			embed 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72'
 			embed ('com.android.support:appcompat-v7:28.0.0'){exclude group: 'com.android.support',module: 'support-v4' exclude group: 'android.arch.lifecycle' exclude group: 'android.arch.core'}
			<!-- embed ('com.android.support:appcompat-v7:28.0.0') -->
			embed 'com.squareup.retrofit2:converter-scalars:2.4.0'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这里插入图片描述

网络连接问题

整理好快手资源包后,打包系统可以打包了,但是出现了打出的资源包无法连接网络问题。原因是缺少okhttp3文件夹以及相应的文件。通过正向打包的方式可以获取okhttp3文件夹。当将此文件夹复制到打包系统项目目录回编译时,发现apktool无法识别此目录,因此改为了修改签名前的kuaishou.apk文件类型为kuaishou.zip,再通过WinRAR将okhttp3文件夹复制到kuaishou.zip中,再更改kuaishou.zip文件类型为kuaishou.apk。
至此,网络连接问题就解决了。

图标问题

快手提供的图标非透明底色,为白色底色。而打包系统识别的图标只能为透明底色,因此需要对快手角标图标进行处理。处理可以借用的网址。https://www.aigei.com/tool/image/ai

闪退问题

a. 快手渠道使用了R文件,因此打包系统需要重新编译生成R文件,否则会出现快手找不到相关资源而闪退。排查闪退问题原因的方法,对比打包系统打出的apk包以及正向打出的正常的apktool包,通过Bcompare软件对比两个包的差别,根据对比的结果排查问题。
b. 正式打包程序发布后,使用联运测试组测试时发现,联运测试组打包无法运行,经排查,发现曙光英雄游戏相比于联运测试组多了获取多smali操作,而快手渠道需要此操作,因此,判断如果时快手渠道,则进行getNeedMutiSmali。
  • 1
  • 2

访问外部存储文件的权限问题

requestLegacyExternalStorage is loss# 当前APK未对Android10 适配
解决方法:请添加requestLegacyExternalStorage=true

快手渠道登录闪退

gson版本过低导致,升级gson版本为快手渠道要求依赖版本。

2023-05-22 10:47:30.613 22979-22979/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: cn.jj.log.kuaishou, PID: 22979
    io.reactivex.exceptions.CompositeException: 2 exceptions occurred. 
        at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:80)
        at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:67)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:200)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)
        at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:0)
        at android.os.Handler.handleCallback(Handler.java:942)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:240)
        at android.os.Looper.loop(Looper.java:351)
        at android.app.ActivityThread.main(ActivityThread.java:8364)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
      ComposedException 1 :
    	java.lang.IllegalArgumentException: Unable to create converter for class com.kwai.sdk.b.c.h.j
        for method g.a
        at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:755)
        at retrofit2.ServiceMethod$Builder.createResponseConverter(ServiceMethod.java:741)
        at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:172)
        at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
        at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
        at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
        at $Proxy16.a(Unknown Source)
        at com.kwai.sdk.b.c.f.c(KwaiTouchEventManager.java:6)
        at com.kwai.sdk.subbus.account.login.c.e(KwaiLoginManager.java:0)
        at com.kwai.sdk.subbus.account.login.c.c(KwaiLoginManager.java:0)
        at com.kwai.sdk.subbus.account.login.c$b.onSuccess(KwaiLoginManager.java:27)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:18)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.e$a.onSuccess(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.h.a(LoginPassPortTokenInterceptor.java:2)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:6)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.e$a.onSuccess(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.i.a(LoginUserInfoInterceptor.java:3)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:6)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.e$a.onSuccess(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.c.a(LoginAddictionInterceptor.java:63)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:6)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.e$a.onSuccess(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.d.a(LoginCertificationInterceptor.java:17)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:6)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.e$a.onSuccess(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.a.a(LoginAccountBindInterceptor.java:5)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:6)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.e$a.onSuccess(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.b.a(LoginAccountDeleteInterceptor.java:4)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:6)
2023-05-22 10:47:30.613 22979-22979/? E/AndroidRuntime:     at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.c.a(KwaiLoginManager.java:104)
        at com.kwai.sdk.subbus.account.login.g.k$a.a(GameRefreshTokenLoginRequest.java:27)
        at com.kwai.sdk.subbus.account.login.g.k$a.accept(GameRefreshTokenLoginRequest.java:0)
        at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:200)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)
        at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:0)
        at android.os.Handler.handleCallback(Handler.java:942)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:240)
        at android.os.Looper.loop(Looper.java:351)
        at android.app.ActivityThread.main(ActivityThread.java:8364)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
     Caused by: java.lang.IllegalArgumentException: @JsonAdapter value must be TypeAdapter or TypeAdapterFactory reference.
        at com.google.gson.internal.bind.JsonAdapterAnnotationTypeAdapterFactory.getTypeAdapter(JsonAdapterAnnotationTypeAdapterFactory.java:64)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java:132)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:105)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:104)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:160)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:96)
        at com.google.gson.Gson.getAdapter(Gson.java:416)
        at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53)
        at com.google.gson.Gson.getAdapter(Gson.java:416)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java:135)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:105)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:104)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:160)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:96)
        at com.google.gson.Gson.getAdapter(Gson.java:416)
        at retrofit2.converter.gson.GsonConverterFactory.responseBodyConverter(GsonConverterFactory.java:0)
        at retrofit2.Retrofit.nextResponseBodyConverter(Retrofit.java:330)
        at retrofit2.Retrofit.responseBodyConverter(Retrofit.java:0)
        at retrofit2.ServiceMethod$Builder.createResponseConverter(ServiceMethod.java:739)
        at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:172)
        at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
        at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
        at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
        at $Proxy16.a(Unknown Source)
        at com.kwai.sdk.b.c.f.c(KwaiTouchEventManager.java:6)
        at com.kwai.sdk.subbus.account.login.c.e(KwaiLoginManager.java:0)
        at com.kwai.sdk.subbus.account.login.c.c(KwaiLoginManager.java:0)
        at com.kwai.sdk.subbus.account.login.c$b.onSuccess(KwaiLoginManager.java:27)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:18)
        at com.kwai.sdk.subbus.account.login.b.e.a(LoginChainedInterceptor.java:0)
        at com.kwai.sdk.subbus.account.login.b.e$a.onSuccess(LoginChainedInterceptor.java:0)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103

快手渠道提审问题

在这里插入图片描述
在这里插入图片描述

快手OKhttp3冲突

implementation(“com.squareup.okhttp3:okhttp:4.9.1”)
会与快手


2023-11-29 10:40:14.553 16488-16488 ActivityThread          pid-16488                            E  Failed to find provider info for com.yxcorp.gifshow.authorization.authProvider
2023-11-29 10:40:14.553 16488-17170 AndroidRuntime          pid-16488                            E  FATAL EXCEPTION: kanas-log
Process: cn.jj.wzwd.kuaishou, PID: 16488
 java.lang.NullPointerException
                                                                                                  	at okhttp3.OkHttpClient.<init>(OkHttpClient.kt:232)
                                                                                                  	at okhttp3.OkHttpClient$Builder.build(OkHttpClient.kt:1069)
                                                                                                  	at com.kwai.middleware.azeroth.network.AzerothApiRequester.getOkHttpClient(AzerothApiRequester.java:43)
                                                                                                  	at com.kwai.middleware.azeroth.network.AzerothApiRequester.access$1100(AzerothApiRequester.java:0)
                                                                                                  	at com.kwai.middleware.azeroth.network.AzerothApiRequester$Builder.getOkHttpClientBuilder(AzerothApiRequester.java:2)
                                                                                                  	at com.kwai.middleware.azeroth.network.AzerothApiRequester$Builder.removeInterceptor(AzerothApiRequester.java:0)
                                                                                                  	at com.kwai.middleware.azeroth.network.AzerothApiRequester$Builder.setAzerothApiParams(AzerothApiRequester.java:0)
                                                                                                  	at com.kwai.kanas.f.a.f(ApiRequesterManager.java:2)
                                                                                                  	at com.kwai.kanas.f.a.a(ApiRequesterManager.java:0)
                                                                                                  	at com.kwai.kanas.Kanas.a(Kanas.java:0)
                                                                                                  	at com.kwai.kanas.Kanas.access$lambda$8(Unknown Source:0)
                                                                                                  	at com.kwai.kanas.Kanas$$Lambda$9.run(Unknown Source:4)
                                                                                                  	at android.os.Handler.handleCallback(Handler.java:942)
                                                                                                  	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                  	at android.os.Looper.loopOnce(Looper.java:240)
                                                                                                  	at android.os.Looper.loop(Looper.java:351)
                                                                                                  	at android.os.HandlerThread.run(HandlerThread.java:67)
2023-11-29 10:40:14.555 16488-16488 ActivityThread          pid-16488                            E  Failed to find provider info for com.yxcorp.gifshow.authorization.authProvider
2023-11-29 10:40:14.562  1982-4040  ITheiaManagerExt        pid-1982                             W  [sendEvent] {0x5 394308506 0x1003 16488 11151 cn.jj.wzwd.kuaishou} reported frequently, then we return.
2023-11-29 10:40:14.564 16488-16488 ActivityThread          pid-16488                            E  Failed to find provider info for com.yxcorp.gifshow.authorization.authProvider
2023-11-29 10:40:14.566 16488-16488 ActivityThread          pid-16488                            E  Failed to find provider info for com.yxcorp.gifshow.authorization.authProvider
2023-11-29 10:40:14.567 16488-16488 ActivityThread          pid-16488                            E  Failed to find provider info for com.yxcorp.gifshow.authorization.authProvider
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

PM2

pm2文件路径

C:\Users\Administrator\.pm2\logs
  • 1

多AAR打包方案问题

多AAR打包方案整理资源不全。例如:
导入资源

implementation ‘com.android.support:support-compat:28.0.0’

对应依赖树:

releaseUnitTestCompileClasspath - Resolved configuration for compilation for variant: releaseUnitTest
+--- com.android.support:support-compat:28.0.0
|    +--- com.android.support:support-annotations:28.0.0
|    +--- com.android.support:collections:28.0.0
|    |    \--- com.android.support:support-annotations:28.0.0
|    +--- android.arch.lifecycle:runtime:1.1.1
|    |    +--- android.arch.lifecycle:common:1.1.1
|    |    |    \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
|    |    +--- android.arch.core:common:1.1.1
|    |    |    \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
|    |    \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
|    \--- com.android.support:versionedparcelable:28.0.0
|         +--- com.android.support:support-annotations:28.0.0
|         \--- com.android.support:collections:28.0.0 (*)
+--- project :app (*)
+--- com.android.support:support-compat:{strictly 28.0.0} -> 28.0.0 (c)
+--- com.android.support:support-annotations:{strictly 28.0.0} -> 28.0.0 (c)
+--- com.android.support:collections:{strictly 28.0.0} -> 28.0.0 (c)
+--- android.arch.lifecycle:runtime:{strictly 1.1.1} -> 1.1.1 (c)
+--- com.android.support:versionedparcelable:{strictly 28.0.0} -> 28.0.0 (c)
+--- android.arch.lifecycle:common:{strictly 1.1.1} -> 1.1.1 (c)
\--- android.arch.core:common:{strictly 1.1.1} -> 1.1.1 (c)

releaseUnitTestRuntimeClasspath - Resolved configuration for runtime for variant: releaseUnitTest
+--- project :app (*)
\--- com.android.support:support-compat:28.0.0
     +--- com.android.support:support-annotations:28.0.0
     +--- com.android.support:collections:28.0.0
     |    \--- com.android.support:support-annotations:28.0.0
     +--- android.arch.lifecycle:runtime:1.1.1
     |    +--- android.arch.lifecycle:common:1.1.1
     |    |    \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
     |    +--- android.arch.core:common:1.1.1
     |    |    \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
     |    \--- com.android.support:support-annotations:26.1.0 -> 28.0.0
     \--- com.android.support:versionedparcelable:28.0.0
          +--- com.android.support:support-annotations:28.0.0
          \--- com.android.support:collections:28.0.0 (*)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

cmd指令报错

在这里插入图片描述

https://github.com/kezong/fat-aar-android/issues/347
降低androidx.appcompat:appcompat:版本。
embed ‘androidx.appcompat:appcompat:1.3.1’
改为:
embed ‘androidx.appcompat:appcompat:1.2.0’

androidx报错

在这里插入图片描述
gradle.properties中设置androidx为true
在这里插入图片描述

实际导入资源中缺少

android.arch.lifecycle-common-1.1.1.jar

在这里插入图片描述

打包系统问题

渠道资源混淆问题

在这里插入图片描述
由于渠道资源是在打包系统中使用的。

d8方法数受限问题

详见d8.

d8压缩时,java.nio.file.InvalidPathException: Illegal char <*>

解决!
因为在路径下没有找到 *.class 所以报了nio异常。排查下对应的路径是否存在文件,如果不存在文件则进行特殊处理就可以。比如我这的特殊处理是看哪个地方存在class文件,将路径指向存在文件的路径。

服务端登录验签失败

请检查是否对token等参数的长度进行限制。

通用错误

‘Namespace for prefix ‘tools’ has not been declared.’

ERROR: ‘Namespace for prefix ‘tools’ has not been declared.’
原因:https://developer.android.com/studio/build/manage-manifests?hl=zh-cn
删除此标签
在这里插入图片描述

dimen/dp5 dimen/ssp_18 error: resource dimen/ssp_18 (aka com.huya.berry.cn.jj.log:dime

n/ssp_18) not found.
W: D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100055\huya\res\layout\ark_adapter_item.xml:2: error: resource dimen/ssp_18 (aka com.huya.berry.cn.jj.log:dime
n/ssp_18) not found.
W: D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100055\huya\res\layout\hyberry_floating_coupon_left.xml:13: error: resource dimen/dp5 (aka com.huya.berry.cn.j
j.log:dimen/dp5) not found.
尺寸表示的文件夹不能删除。
在这里插入图片描述

不同设备差异

Manifest中的启动模式都设置成默认(standard)时,不同厂商设备的启动模式可能不一样。

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/multidex/MultiDex;

问题背景

APK母包中没有MultiDex类,APK经过反编译后具有多dex,导致出现此错误。

问题解决思路

将渠道资源中的Androidx支持库资源拷贝到apk的主dex中。

问题解决与否

已解决

Maximum call stack size exceeded.

栈溢出错误。一般发生在函数中使用到递归的情况。
在这里插入图片描述
这个问题是递归函数调用引起的,当递归函数循环调用而没有终止条件时触发。

duplicate value for resource ‘attr/displayOptions’ with config ‘’. resource previously defined here.

在这里插入图片描述
原因可以参考此文档,此问题与attrs.xml文件有关。

原因

这个问题是因为在apk回编译的时候,具有相同@_name属性的attr标签。attr合适会冲突可见此篇文章

解决方法

对比游戏以及渠道attr文件,进行合并。
合并过程中有下面几种情形:

  1. 渠道与游戏attr文件name相同,但是都没array类型的属性。

游戏

<attr name="actionModeCloseContentDescription" format="string"></attr>
  • 1

渠道

<attr name="actionModeCloseContentDescription"></attr>
  • 1

这种类型是不进行合并的,游戏可以正常运行。
2. 游戏以及渠道attr文件中包括array类型的标签。

游戏

<attr name="autoSizeTextType" >
    <enum name="none" value="0"></enum>
    <enum name="uniform" value="1"></enum>
    <enum name="XXX" value="2"></enum>
</attr>
  • 1
  • 2
  • 3
  • 4
  • 5

渠道

<attr name="autoSizeTextType" format="enum">
     <enum name="none" value="0"></enum>
     <enum name="uniform" value="1"></enum>
     <enum name="zzzz" value="3"></enum>
 </attr>
  • 1
  • 2
  • 3
  • 4
  • 5

合并后文件存在渠道的attr autoSizeTextType属性中,并删除游戏的attr autoSizeTextType属性,后续会将渠道的属性都放到游戏的属性中:

<attr name="autoSizeTextType" >
    <enum name="none" value="0"></enum>
    <enum name="uniform" value="1"></enum>
    <enum name="XXX" value="2"></enum>
    <enum name="zzzz" value="3"></enum>
</attr>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

合并过程中,以游戏为基准来看的话,删除了format属性,并且在array中增加了属性。

<enum name="zzzz" value="3"></enum>
  • 1

经测试,游戏可以正常运行。

java.lang.RuntimeException: Unable to start activity ComponentInfo{cn.jj.log.kuaishou/com.yxcorp.gateway.pay.activity.PayWebViewActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x500a006a

参考1:

MinSdkVersion > 21情况下,是否需要将Androidx与Android放在dex0中

apktool回编译不同渠道子包时,存放so库的位置不同,可能为lib或者libs。

打包系统待优化点

Error: Connection lost: The server closed the connection.
    at Protocol.end (D:\ChannelFolder\JJChannelPackageForTest\Project\node_modules\mysql\lib\protocol\Protocol.js:112:13)
    at Socket.<anonymous> (D:\ChannelFolder\JJChannelPackageForTest\Project\node_modules\mysql\lib\Connection.js:97:28)
    at Socket.<anonymous> (D:\ChannelFolder\JJChannelPackageForTest\Project\node_modules\mysql\lib\Connection.js:502:10)
    at Socket.emit (events.js:387:35)
    at endReadableNT (internal/streams/readable.js:1317:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

OPPO渠道

OPPO联盟广告渠道

使用同一个OPPO账号登录OPPO渠道以及OPPO联盟广告渠道时,JJ服务器返回的用户标识是一样的。

GameCenterSDK.init

该接口为同步接口
一般来说,只要调用GameCenterSDK.init(appSecret, this)时传入appSecret正确,并且在主进程中调用此接口,OPPOSDK的初始化应该就是成功的。

B站

B站的aar资源中,对应manifest以及res文件中的配置资源可能不全,需要结合B站的接口文档,看下B站接口文档中有无需要添加的配置,并添加上。

resource ‘drawable/abc_menu_hardkey_panel_mtrl_mult’ has a conflicting value for configuration (xxhdpi-v4).

缺少资源

缺少appcompat.light.dialog资源,此资源在Android-support-v7中

error: resource style/Theme.AppCompat.Light.Dialog (aka com.gsc.pub:style/Theme.AppCompat.Light.Dialog) not found.
error: resource style/Theme.AppCompat.Light.Dialog (aka com.gsc.pub:style/Theme.AppCompat.Light.Dialog) not found.
error: resource style/Theme.AppCompat.Light.Dialog (aka com.gsc.pub:style/Theme.AppCompat.Light.Dialog) not found.
error: resource style/Theme.AppCompat.Light.Dialog (aka com.gsc.pub:style/Theme.AppCompat.Light.Dialog) not found.
error: resource style/Theme.AppCompat.Light.NoActionBar (aka com.gsc.pub:style/Theme.AppCompat.Light.NoActionBar) not found.
error: failed linking references.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

lib.so相关

so检测不通过,原因为会对多aar打包方案默认对so进行压缩。因此,整理so资源时,需要解开aar包,获取未压缩的so库资源替换多AAR打包方案生成的so库资源。
在这里插入图片描述

targetSDKVersion相关

在这里插入图片描述

B站资源整理

在这里插入图片描述

org.apache.http.legacy配置

Assets文件

下面两个jar包中的assets文件需要拷贝出来。
在这里插入图片描述

接口相关

要求调用时传入游戏主Activity,目前接入文档中没有对此做出限制。
在这里插入图片描述

小米

V3.3.0.7
  • 1

小米渠道获取渠道资源目前是使用手动解aar包的方式。
可能存在的优化点:

优化点1

在这里插入图片描述

优化点2

在这里插入图片描述

魅族

优化点1

在这里插入图片描述

优化点2

在这里插入图片描述

魅族要求

由于魅族进行二次签名,因此要求游戏不能使用二次签名。
在这里插入图片描述

提示应用签名不正确

游戏已经上架,另外再打测试包时候不能登录,提示游戏签名不正确。
需要去渠道后台打开联调开关。

未安装支付宝情况下,无法拉起网页支付宝

魅族渠道 未安装支付宝 游戏无法拉起网页支付宝。部分机型,魅族SDK没有做适配,所以部分机型没有安装支付宝情况下, 无法拉起网页支付宝。
在这里插入图片描述

部分模拟器未适配

在这里插入图片描述

华为

华为的接入文档比较繁琐,可能是游戏SDK、账号SDK、支付SDK不是出自同一人,但是再接入华为的联运SDK时需要适用这三个SDK,因此需要阅读这三个的接口文档。

在Eclipse项目中集成HMS Core SDK

在这里插入图片描述

4399

游戏activity可能出现的问题

在这里插入图片描述

此部分activity配置游戏要求更改(20230524)

在这里插入图片描述

游戏 Activity指的是游戏的启动activity,此部分是否会有问题?

悬浮窗可能出现的问题

在这里插入图片描述

账号切换接口(暂时没有调用)

在这里插入图片描述

打包可能出现的问题

在这里插入图片描述
可以等出现资源出错时在修复此bug,不然象棋会出先请求权限异常问题。

其他问题

operate: Unexpected cn.m4399.operate.OpeFileProvider, check its existence and its authority matched with ‘com.jj.log.m4399.operate.FileProvider’

java.lang.ExceptionInInitializerError: operate: Unexpected cn.m4399.operate.OpeFileProvider, check its existence and its authority matched with 'com.jj.log.m4399.operate.FileProvider'
        at cn.m4399.operate.x2.a(SdkChecker.java:36)
        at cn.m4399.operate.x2.a(SdkChecker.java:12)
        at cn.m4399.operate.t2.c(ApiInitialize.java:8)
        at cn.m4399.operate.t2.b(ApiInitialize.java:21)
        at cn.m4399.operate.y2.a(ApiMain.java:5)
        at cn.m4399.operate.OperateCenter.init(OperateCenter.java:2)
        at cn.jj.channel.separate.online.TKOnlineChannel4399.init4399SDK(TKOnlineChannel4399.java:22)
        at cn.jj.channel.separate.online.TKOnlineChannel4399.onCreate(TKOnlineChannel4399.java:9)
        at O0000o0o.O000000o(ChannelMgrImpl.java:96)
        at O0000oO0.O000000o(TKChannelManager.java:14)
        at O00000Oo.O000000o(TKAggregationManager.java:24)
        at cn.jj.aggregationsdk.TKAggregationSDK.onCreate(TKAggregationSDK.java:1)
        at cn.jj.tankdemo.LoginActivity.onCreate(LoginActivity.java:88)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

修改applicationId为gamePackageName
在这里插入图片描述

abi适配和so库

在这里插入图片描述

今日游戏/抖音直播

今日游戏与抖音直播从2.1.5.0版本开始分开

插屏广告问题

在这里插入图片描述

需要确保提审前应用包含V1和V2签名

应用如何确保
可以看文章中查看签名处理

游戏包体的VersionCode以及VersionName必须设置,不要留空

在这里插入图片描述

config.json配置

在这里插入图片描述

登陆相关

部分Scope没有权限,接入的非抖音联运SDK

在这里插入图片描述

233

style attribute ‘attr/statusBarBackground (aka com.bun.miitmdid:attr/statusBarBackground)’ not found.

D:\channelPackage\ToolConfigPath\games\dcpPro\100055\233\tempRes\values\styles.xml:1431: error: style attribute 'attr/statusBarBackground (aka com.bun.miitmdid:attr/statusBarBackground)' not found.
  • 1

由于打包系统内部删除文件导致的,已修复。

解决步骤

下面之前包括了233渠道,现已将233渠道从中剔除。
在这里插入图片描述

233渠道初始化接口变更

在这里插入图片描述

登录代码

在这里插入图片描述

queries标签

233渠道Manifest文件中,queries标签整理在一个标签下。正常情况下queries标签有多个,但是目前的打包系统仅识别一个queries标签。


    <queries>
        <package android:name="com.tencent.mm" />
		<intent>
            <action android:name="*" />

            <data android:scheme="tbopen" />
        </intent>

        <package android:name="com.eg.android.AlipayGphone" />
        <package android:name="com.eg.android.AlipayGphoneRC" />
        <package android:name="hk.alipay.wallet" />
		<package android:name="com.meta.box" />
    </queries>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

233渠道跳过配置是什么意思

在这里插入图片描述

tools.replace

当我们的项目的某些属性和第三方库中的属性有冲突时或者我们想修改第三方库中某些资源的属性时,我们就需要使用tools:replace来处理。跳转链接

此项暂时先不添加,添加之后会报错。
在这里插入图片描述

使用公共支持库的方法,需要删除以下依赖

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

233渠道防沉迷

233渠道防沉迷已经内部集成, 聚合渠道SDK无需关注。

233点击悬浮球闪退

除了用233拉起工具进行测试外,还需要直接打开应用,点击悬浮球看下是否出现闪退。

233点击悬浮球闪退

缺少Landroid/support/v4/app/SupportActivity类。

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/SupportActivity;
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at java.lang.Class.forName(Class.java:379)
        at com.meta.android.mpg.mix.af4f.gafsgg.a4Dgsas(Unknown Source:0)
        at com.meta.android.mpg.mix.af4f.gafsgg.a4Dgsas(Unknown Source:9)
        at com.meta.android.mpg.mix.af4f.gafsgg.a4Dgsas(Unknown Source:19)
        at com.meta.android.mpg.common.MetaApi.initMetaSdk(Unknown Source:0)
        at cn.jj.channel.separate.online.TKOnlineChannel233.initInApplication(TKOnlineChannel233.java:11)
        at O0000o0o.O000000o(ChannelMgrImpl.java:48)
        at O0000oO0.O000000o(TKChannelManager.java:6)
        at O00000Oo.O000000o(TKAggregationManager.java:6)
        at cn.jj.aggregationsdk.TKAggregationSDK.initInApplication(TKAggregationSDK.java:1)
        at cn.jj.tankdemo.TankApplication.onCreate(TankApplication.java:24)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7214)
        at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2288)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loopOnce(Looper.java:240)
        at android.os.Looper.loop(Looper.java:351)
        at android.app.ActivityThread.main(ActivityThread.java:8364)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

原因:

也就是说Glide依赖需要和android-support依赖放在一起。此方式还是没有解决问题,需要再研究下

定位到应该是点击悬浮球的时候,会使得GameApplication重新创建了,导致重新调用了SDK的初始化方法,初始化方法会检查是否有依赖Glide。Glide中有使用了android.support.v4.app.FragmentActivity(继承android.support.v4.app.SupportActivity),给的包中存在多dex,Glide所在的dex中只有FragmentActivity,没有SupportActivity,可能只这个问题导致的

闪退实际原因

2023-07-17 20:32:24.114 2894-2894/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: cn.jj.log.meta, PID: 2894
    java.lang.NoClassDefFoundError: Failed resolution of: Landroid/arch/lifecycle/LifecycleOwner;
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at java.lang.Class.forName(Class.java:379)
        at com.meta.android.mpg.mix.af4f.gafsgg.a4Dgsas(Unknown Source:0)
        at com.meta.android.mpg.mix.af4f.gafsgg.a4Dgsas(Unknown Source:9)
        at com.meta.android.mpg.mix.af4f.gafsgg.a4Dgsas(Unknown Source:19)
        at com.meta.android.mpg.common.MetaApi.initMetaSdk(Unknown Source:0)
        at cn.jj.channel.separate.online.TKOnlineChannel233.initInApplication(TKOnlineChannel233.java:11)
        at O0000o0o.O000000o(ChannelMgrImpl.java:48)
        at O0000oO0.O000000o(TKChannelManager.java:6)
        at O00000Oo.O000000o(TKAggregationManager.java:6)
        at cn.jj.aggregationsdk.TKAggregationSDK.initInApplication(TKAggregationSDK.java:1)
        at cn.jj.tankdemo.TankApplication.onCreate(TankApplication.java:24)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7214)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

缺少android/support/v4/app/SupportActivity依赖的android/arch/lifecycle/LifecycleOwner类,该类在android.arch.lifecycle-common-1.1.1.jar中,
233资源中加入android.arch.lifecycle-common-1.1.1.jar和android.arch.lifecycle-extensions-1.1.1.jar就可以了
在这里插入图片描述

九游/阿里

此点可能存在问题。
在这里插入图片描述
阿里需要替换ng资源,需要注意。
在这里插入图片描述

阿里的最低版本和目标版本

最低版本为不高于21;
目标版本不高于26;见阿里常见问题
在这里插入图片描述
最新文档中已去除targetAPI的限制。
在这里插入图片描述

阿里当前版本不支持v3签名

在这里插入图片描述

切换账号后黑屏,打包系统已对此做出优化

在这里插入图片描述

应用宝/YYB

资源导入

在这里插入图片描述
在这里插入图片描述远程依赖可以先不导入。目前看SDK功能运行正常。

正式环境上仅包括应用宝的现网环境,不包括应用宝的沙箱环境。

内网环境中应用宝的环境配置随时可调,实际测试中,如果应用宝渠道拉起支付异常,可以检查打包系统配置的应用宝环境是否与服务端配置环境一致。

拉起支付正常,实际支付时提示 1021-1021-0

此时需要联系商务确认是否已经发布相应的环境,对应应用宝的沙箱/现网环境。
在这里插入图片描述

支付收不到回调消息

检查下沙箱或者现网环境是否发布。以及现网和沙箱配置的回调接口是否正常。

应用宝直购模式下单的客户端接入文档在这里

在这里插入图片描述

此部分说明先添加上

在这里插入图片描述

请求参数错误

检查返回的APPKEY对应环境与应用宝渠道配置环境是否一致。

2023-05-29 16:38:41.683 5801-5801/? I/TKMergedChannelYYB: onPayNotify:PayRet : 
    BaseRet{ret=1, flag=1001, msg='请求参数错误(sig error in goods_info);code:1001', errorCode=-1}platform : 2
    realSaveNum : 0
    payChannel : -1
    payState : -1
    provideState : -1
    extendInfo : 1
    payReserve1 : null
    payReserve2 : desktop_m_wechat-00000000-android-00000000-ysdk-ysdkwater-1
    payReserve3 : 
    ysdkExtInfo : 123
2023-05-29 16:38:41.683 5801-5801/? I/TKMergedChannelYYB: ret.ysdkExtInfo: 123
2023-05-29 16:38:41.683 5801-5801/? I/TKMergedChannelYYB: ret.ysdkExtInfo:123
2023-05-29 16:38:41.683 5801-5801/? I/TKMergedChannelYYB: ret.payStatus:1001
2023-05-29 16:38:41.683 5801-5801/? E/TKOnline.TKMerged.TKChannelAbstract: channel do pay original errorCode:1001
2023-05-29 16:38:41.683 5801-5801/? E/TKOnline.TKMerged.TKChannelAbstract: channel do pay convert errorCode:-1001
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

YSDK jar包中包括assets文件,需要将其放在游戏assets中。

另外登录开始后进入倒计时30,如果没有收到回调则回到登录界面是否需要。
在这里插入图片描述

QQ、微信 OPEN SDK冲突

应用宝渠道包括了QQ OPEN SDK版本:3.5.12.2、微信 WECHAT SDK版本:5.2.1。如果游戏母包中也包括了这两部分资源,如果率先加载了游戏中的com/tencent中的资源,由于游戏中资源比较旧,可能导致游戏登录异常。
在这里插入图片描述

微信登录异常

在这里插入图片描述
请先检查配置,确认是否在应用宝申请了微信登录功能,并在应用宝后台绑定微信参数。
QQ登录异常,请确认否在应用宝申请了QQ登录功能,并在应用宝后台绑定QQ参数。

targetApi小于等于28,否则拉起QQ登录异常

在这里插入图片描述

跳转页面没反应

检查应用的启动模式,是否从singleTop跳转到了singleTop,导致页面无跳转。

配置问题

登录如果返回1305,// 客户端签名非法
则需要游戏侧与登录服务端确认是否设置了相同的环境。

VIVO渠道

oaid相关

在这里插入图片描述
相比之前Res接入的方式需要删除此部分。目前通过多AAR方案集成资源,不用删除多AAR打包方案生成的这些文件。
在这里插入图片描述
在这里插入图片描述
订单补单的逻辑先不添加。
在这里插入图片描述

打包报错

mergeGameChannelResources.....
start package reCompileApk....
W: D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100035\vivo\AndroidManifest.xml:89: error: Error parsing XML: unbound prefix
W:
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [C:\Users\OPAUDI~1.000\AppData\Local\Temp\brut_util_Jar_1241242190100
2862982663997122967229845.tmp, p, --forced-package-id, 127, --min-sdk-version, 21, --target-sdk-version, 31, --version-code, 1, --version-name, 1.0, --no-version
-vectors, -F, C:\Users\OPAUDI~1.000\AppData\Local\Temp\APKTOOL3412300437224083600.tmp, -e, C:\Users\OPAUDI~1.000\AppData\Local\Temp\APKTOOL2218842037132537499.tm
p, -0, arsc, -I, D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100035\vivo\apktool_framework\1.apk, -S, D:\ChannelFolder\JJChannelPackageF
orTest\ToolConfigPath\games\dcpPro\100035\vivo\res, -M, D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100035\vivo\AndroidManifest.xml]
W: D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100035\vivo\AndroidManifest.xml:89: error: unbound prefix.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

检查Manifest中声明的是否有tools命名空间。删除。
在这里插入图片描述

同意隐私协议只能设置一次

vivo渠道同意隐私协议接口只能调用一次,不然可能会引起登录异常。
在这里插入图片描述

Vivo渠道部分设备输出日志TAG中不能包括Vivo

在这里插入图片描述

闪退

oaid冲突导致的,vivo渠道的oaid版本为1.0.25.

2023-10-17 20:16:03.089 28116-28116 AndroidRuntime          pid-28116                            E  FATAL EXCEPTION: main
                                                                                                    Process: com.jnmo.emp.jjgame.vivo, PID: 28116
                                                                                                    java.lang.RuntimeException: Unable to create application com.jnmo.emp.jjgame.APPAplication: java.lang.reflect.UndeclaredThrowableException
                                                                                                    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7263)
                                                                                                    	at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2296)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:240)
                                                                                                    	at android.os.Looper.loop(Looper.java:351)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8422)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
                                                                                                    Caused by: java.lang.reflect.UndeclaredThrowableException
                                                                                                    	at $Proxy5.initInApplication(Unknown Source)
                                                                                                    	at cn.jj.opensdk.TKOpenManager.initInApplication(TKOpenManager.java:2)
                                                                                                    	at cn.jj.opensdk.TKOpenSDK.initInApplication(TKOpenSDK.java:1)
                                                                                                    	at com.jnmo.emp.jjgame.APPAplication.onCreate(APPAplication.java:34)
                                                                                                    	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285)
                                                                                                    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7256)
                                                                                                    	at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) 
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2296) 
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:240) 
                                                                                                    	at android.os.Looper.loop(Looper.java:351) 
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8422) 
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584) 
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013) 
                                                                                                    Caused by: java.lang.reflect.InvocationTargetException
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at cn.jj.opensdk.proxy.TKProxyHandler.invoke(TKProxyHandler.java:21)
                                                                                                    	at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
                                                                                                    	at $Proxy5.initInApplication(Unknown Source) 
                                                                                                    	at cn.jj.opensdk.TKOpenManager.initInApplication(TKOpenManager.java:2) 
                                                                                                    	at cn.jj.opensdk.TKOpenSDK.initInApplication(TKOpenSDK.java:1) 
                                                                                                    	at com.jnmo.emp.jjgame.APPAplication.onCreate(APPAplication.java:34) 
                                                                                                    	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285) 
                                                                                                    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7256) 
                                                                                                    	at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) 
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2296) 
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:240) 
                                                                                                    	at android.os.Looper.loop(Looper.java:351) 
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8422) 
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584) 
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013) 
                                                                                                    Caused by: java.lang.NoSuchMethodError: No static method InitSdk(Landroid/content/Context;ZLcom/bun/miitmdid/interfaces/IIdentifierListener;)I in class Lcom/bun/miitmdid/core/MdidSdkHelper; or its super classes (declaration of 'com.bun.miitmdid.core.MdidSdkHelper' appears in /data/app/~~eNJ0u0cuAnWnnt76SXGPzg==/com.jnmo.emp.jjgame.vivo-CxkvRgZCisFbL8s0gmJibw==/base.apk)
                                                                                                    	at com.vivo.unionsdk.utils.MiitHelper.CallFromReflect(MiitHelper.java:0)
                                                                                                    	at com.vivo.unionsdk.utils.MiitHelper.getDeviceIds(MiitHelper.java:49)
                                                                                                    	at com.vivo.unionsdk.utils.g.(ImeiUtis.java:409)
                                                                                                    	at com.vivo.unionsdk.f.j.(SwitchPolicyManager.java:113)
                                                                                                    	at com.vivo.unionsdk.open.VivoUnionSDK.initSdk(VivoUnionSDK.java:0)
                                                                                                    	at cn.jj.channel.separate.online.TKOnlineChannelVivo.initInApplication(TKOnlineChannelVivo.java:86)
                                                                                                    	at cn.jj.channel.ChannelMgrImpl.initInApplication(ChannelMgrImpl.java:145)
                                                                                                    	at cn.jj.channel.TKChannelManager.initInApplication(TKChannelManager.java:62)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                    	at cn.jj.opensdk.proxy.TKProxyHandler.invoke(TKProxyHandler.java:21) 
                                                                                                    	at java.lang.reflect.Proxy.invoke(Proxy.java:1006) 
                                                                                                    	at $Proxy5.initInApplication(Unknown Source) 
                                                                                                    	at cn.jj.opensdk.TKOpenManager.initInApplication(TKOpenManager.java:2) 
                                                                                                    	at cn.jj.opensdk.TKOpenSDK.initInApplication(TKOpenSDK.java:1) 
                                                                                                    	at com.jnmo.emp.jjgame.APPAplication.onCreate(APPAplication.java:34) 
                                                                                                    	at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1285) 
                                                                                                    	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7256) 
                                                                                                    	at android.app.ActivityThread.-$$Nest$mhandleBindApplication(Unknown Source:0) 
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2296) 
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:240) 
                                                                                                    	at android.os.Looper.loop(Looper.java:351) 
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8422) 
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584) 
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013) 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76

vivo渠道更新后,oaid版本还是1.0.25

VivoAD渠道

vivoAD渠道的参数与vivo渠道完全一致,不用再做别的特殊处理。之所以有vivoad渠道是因为vivoad渠道与vivo渠道游戏的配置参数不同。

vivo

在这里插入图片描述

魅族

包名要求

package 名称必须以“.mz”结尾。

API版本要求

在这里插入图片描述

下单问题新旧协议

在这里插入图片描述
下单之后会有一个协议,用来标识走的是新协议还是旧协议。

虎牙

API

在这里插入图片描述

debug

在这里插入图片描述

manifest配置

在这里插入图片描述

上报字段

在这里插入图片描述
在这里插入图片描述
关卡、角色服务器id、角色服务器名称、安装包渠道编号这四个字段没有是可以传空

运行闪退

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/arch/core/internal/FastSafeIterableMap;
        at android.arch.lifecycle.LifecycleRegistry.<init>(LifecycleRegistry.java:59)
        at android.arch.lifecycle.ProcessLifecycleOwner.<init>(ProcessLifecycleOwner.java:61)
        at android.arch.lifecycle.ProcessLifecycleOwner.<clinit>(ProcessLifecycleOwner.java:0)
        at android.arch.lifecycle.ProcessLifecycleOwner.init(ProcessLifecycleOwner.java:0)
        at android.arch.lifecycle.ProcessLifecycleOwnerInitializer.onCreate(ProcessLifecycleOwnerInitializer.java:36)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
在这里插入图片描述

lib库名称 lib

在这里插入图片描述

虎牙渠道支付返回错误码0仅表示拉起客户端

在这里插入图片描述

荣耀

manifest中标签冲突

在这里插入图片描述
冲突的原因是重复导入了iap资源,去除此部分资源就可以
在这里插入图片描述
在这里插入图片描述

初始化耗时

在这里插入图片描述

荣耀初始化接口的调用时机

在这里插入图片描述

荣耀渠道初始化点击安装荣耀账号APP,选择取消后,收不到回调信息。

上报玩家游戏角色 退出游戏挽留弹框接口与初始化接口调用顺序

在这里插入图片描述

资源冲突

androidx支持库冲突导致的。
基于公共支持库的思想,象棋androidx支持库的问题解决了。
回头将androidx支持库单独抽出来,也作为公共支持库,然后再研究下怎么判断项目中是否使用了androidx支持库

Error: Command failed: cmd /c @echo off && Chcp 65001>nul && cd D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\tools\aapt&& aapt2 compile --dir D:\Chann
elFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes -o D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\channels-sdk\ATemp-1
00057\honor\rgen\compile.zip --no-crunch --legacy
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:2055: error: duplicate value for resource 'attr/displa
yOptions' with config ''.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:2055: error: resource previously defined here.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:2271: error: duplicate value for resource 'attr/autoSi
zeTextType' with config ''.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:2271: error: resource previously defined here.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4185: error: duplicate value for resource 'attr/showDi
viders' with config ''.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4185: error: resource previously defined here.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4243: error: duplicate value for resource 'attr/alphab
eticModifiers' with config ''.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4243: error: resource previously defined here.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4259: error: duplicate value for resource 'attr/numeri
cModifiers' with config ''.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4259: error: resource previously defined here.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4283: error: duplicate value for resource 'attr/showAs
Action' with config ''.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4283: error: resource previously defined here.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4865: error: duplicate value for resource 'attr/button
Gravity' with config ''.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml:4865: error: resource previously defined here.
D:\ChannelFolder\JJChannelPackageForTest\ToolConfigPath\games\dcpPro\100057\honor\tempRes\values\attrs.xml: error: file failed to compile.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

内核

通过SDKKernel判断当前使用的内核版本,即so库的版本,当前最新的so库版本为1.8.7。
内核的TAG为Android Platform。

官方渠道

全局事件

"operation_id":"146"  带有此标记的为全局日志。
  • 1
{"session_id":"92c7aeb7f9b847a1be1749b806406df4","uid":"","ts":1691120628,"operation":"sdk_call_login","sdk_jjuid":"0","operation_id":"146","app_lifecycle_id":"ffa946f7c3494631964de806177583d6","app_lifecycle_order":"1","content":"0"}
  • 1

阿里一键登录

缺少so库。导入jni文件。
在这里插入图片描述

               Caused by: java.lang.UnsatisfiedLinkError: No implementation found for android.app.Application com.mobile.auth.gatewayauth.utils.ReflectionUtils.getApplication() (tried Java_com_mobile_auth_gatewayauth_utils_ReflectionUtils_getApplication and Java_com_mobile_auth_gatewayauth_utils_ReflectionUtils_getApplication__)
                                                    	at com.mobile.auth.gatewayauth.utils.ReflectionUtils.getApplication(Native Method)
                                                    	at com.mobile.auth.gatewayauth.ExceptionProcessor.processException(Unknown Source:9)
                                                    	at com.mobile.auth.gatewayauth.PhoneNumberAuthHelper.getInstance(Unknown Source:34)
                                                    	at cn.jj.account.onekey.AliManager.init(AliManager.java:82)
                                                    	at cn.jj.account.onekey.JJOneKeyAuthManager.initSP(JJOneKeyAuthManager.java:123)
                                                    	at cn.jj.account.onekey.JJOneKeyAuthManager.init(JJOneKeyAuthManager.java:95)
                                                    	at cn.jj.account.AccountMgrImpl.setOneKeyLoginParam(AccountMgrImpl.java:458)
                                                    	at cn.jj.account.TKAccountManager.setOneKeyLoginParam(TKAccountManager.java:0)
                                                    	at cn.jj.b.i.V(TKAPIImpl.java:17)
                                                    	at cn.jj.b.i.b(TKAPIImpl.java:28)
                                                    	at cn.jj.jjgamesdk.jjgamesdkui.JJGameSDK.init(JJGameSDK.java:0)
                                                    	at cn.jj.channel.separate.online.TKOnlineChannelJJWorld.initInSplashActivity(TKOnlineChannelJJWorld.java:55)
                                                    	at cn.jj.channel.ChannelMgrImpl.initInActivity(ChannelMgrImpl.java:294)
                                                    	at cn.jj.channel.TKChannelManager.initInActivity(TKChannelManager.java:0)
                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                    	at cn.jj.opensdk.proxy.TKProxyHandler.invoke(TKProxyHandler.java:21) 
                                                    	at java.lang.reflect.Proxy.invoke(Proxy.java:1006) 
                                                    	at $Proxy5.initInActivity(Unknown Source) 
                                                    	at cn.jj.opensdk.TKOpenManager.initInActivity(TKOpenManager.java:1) 
                                                    	at cn.jj.opensdk.TKOpenSDK.initInActivity(TKOpenSDK.java:1) 
                                                    	at cn.jj.union.MainActivity.onCreate(MainActivity.java:72) 
                                                    	at android.app.Activity.performCreate(Activity.java:8422) 
                                                    	at android.app.Activity.performCreate(Activity.java:8395) 
                                                    	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1403) 
                                                    	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3849) 
                                                    	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4018) 
                                                    	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:111) 
                                                    	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:2474) 
                                                    	at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                    	at android.os.Looper.loopOnce(Looper.java:240) 
                                                    	at android.os.Looper.loop(Looper.java:351) 
                                                    	at android.app.ActivityThread.main(ActivityThread.java:8422) 
                                                    	at java.lang.reflect.Method.invoke(Native Method) 
                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584) 
                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

xiaomi广告(小米广告)

implementation “androidx.appcompat:appcompat:1.4.1”
改为
implementation “androidx.appcompat:appcompat:1.2.0”

资源冲突

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/826847
推荐阅读
相关标签
  

闽ICP备14008679号