MSDK接入 中的各种问题

检查顺序

  • 包名注意一下

Unity报:Found plugins with same names

Found plugins with same names, Assets/Msdk/BuglyPlugins/Android/libs/buglyagent.jar and Assets/Plugins/Android/libs/buglyagent.jar. Delete the one of the duplicate plugins.

使用SDK的插件部署时复制过来的,结果导出安卓工程的时候造成错误。不确定新版有没有解决。

打安卓包理论上无关的插件

Exception: Unknown CPU architecture for library Assets/Msdk/BuglyPlugins/iOS/libBuglyBridge.a
UnityEditor.Android.PostProcessor.Tasks.NativePlugins.ProcessPlugin
MSDK接入 中的各种问题_第1张图片

原则上平台不应会有安卓,这里我已经去掉了。 同个文件夹下libBuglyBridge 和 BuglyBridge都要改。

导出时提示AutoActivity——appID 对不上

在这里插入图片描述
在AndroidManifest中修改即可,我也不知道为什么自动生成的没修改好。

Resource shrinker cannot be used for libraries

AndroidStudio在3.0之后会报的错误。条件之一是开启了混淆minifyEnabled true。

Attribute application@allowBackup value=(false) from AndroidManifest.xml:42:16-43 is also present at [:GooglePlay:] AndroidManifest.xml:22:18-44 value=(true).

Attribute application@allowBackup value=(false) from AndroidManifest.xml:42:16-43 is also present at [:GooglePlay:] AndroidManifest.xml:22:18-44 value=(true).
Suggestion: add ‘tools:replace=“android:allowBackup”’ to element at AndroidManifest.xml:42:3-165:17 to override.

在上一篇文章提到了,就是命名空间难搞一点。

PS:包名注意一下

我也是改了前面一堆才发现,虽然该提到第一个。但我留着嘲讽一下自己吧。
接平台SDK要求特定包名,需要在playerSetting里设置好。

Program type already present

AGPBI: {“kind”:“error”,“text”:“Program type already present: android.support.annotation.AnyRes”,“sources”:[{}],“tool”:“D8”}
:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ‘:transformDexArchiveWithExternalLibsDexMergerForDebug’.
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: E:\FFOutput\工程名_814\工程名\build\intermediates\transforms\dexBuilder\debug\0.jar,
……
E:\FFOutput\工程名_814\工程名\build\intermediates\transforms\dexBuilder\debug\43.jar
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: android.support.annotation.AnyRes
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1m 6s
66 actionable tasks: 62 executed, 4 up-to-date

通常是包重复引用的问题,网上搜一下会有很多教我怎么查看依赖,怎么exclude的。但是搞到底也不知道是哪个jar文件重了。

Android开发之——依赖冲突Program type already present这个文章里提到的双击shift搜索特别好用。
提示通常只包含了类名,但好几篇文章里提到的依赖关系dependencies我这儿都不管用。要么只有类名,要么只有包名,最后也不知道重复的要在哪里删。
所以,用双击shift全局搜索就好了o( ̄▽ ̄)d

PS:com.xxx.BuildConfig 冲突

本以为我删光所有内容重新导入sdk重新导出工程就不会有问题了。但unity还是自动把MainActivity和BuildConfig打进了classes.jar,随着默认加载全部Libs内容的指令造成冲突。
PPS:确认classes.jar是之前自己另外做的工程,原本用于在原生安卓工程写好命令供unity调用。因为调试需要又把unity导出android工程,最终引起冲突。
参考做法《Unity2018 Gradle打包安卓包报错 Program type already present:com.xx.xx.BuildConfig》

其他邪道_修改build.gradle

android{
    buildTypes{
    	debug{
	    	minifyEnabled true //打开混淆可以去掉这个报错,原因未深究
    	}
    	release{
	    	minifyEnabled true
    	}
    }
}

E/CRASH: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

E/CRASH: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build type ‘Release’, Scripting Backend ‘il2cpp’, CPU ‘x86’
Build fingerprint: ‘google/sdk_gphone_x86/generic_x86:8.1.0/OSM1.180201.007/4586646:user/release-keys’
Revision: ‘0’
pid: 6200, tid: 6222, name: UnityMain >>> 包名 <<<
eax 8ae057d4 ebx 7b5dcc8c ecx 7b5f98d0 edx 00000000
esi 8ae057d4 edi a85ac1e4
xcs 00000073 xds 0000007b xes 0000007b xfs 0000003b xss 0000007b
eip 7b1f473b ebp 7b4ce648 esp 8ae05780 flags 00010202
backtrace:
E/CRASH: #00 pc 000b173b /data/app/包名-3Um5gkgPqOHUpJPK3pT7bw==/lib/x86/libMSDKSystem.so
#01 pc 636e6574
E/MessageQueue: IdleHandler threw exception
java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
Build fingerprint: ‘google/sdk_gphone_x86/generic_x86:8.1.0/OSM1.180201.007/4586646:user/release-keys’
Revision: ‘0’
pid: 6200, tid: 6222, name: UnityMain >>> 包名 <<<
at libMSDKSystem.000b173b(Native Method)
at Unknown.636e6574(Unknown Source:0)

跟腾讯要了个控工程对比修改后就能用了,没有明确修改的点……

Failed to read key bqm from store “目录\文件名.keystore”: keystore password was incorrect

不慎更新了AndroidStudio的版本 3.4.2,Project Structure的形式又变了,Modules下多出来一个SigningConfigs,可以直接设置keystore相关信息。 之前在导出apk的地方也有设置,但这边会影响虚拟机等运行测试。

Unable to start activity ComponentInfo{com.example.wegame/com.tencent.connect.common.AssistActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

Android 8.0系统,不允许在屏幕旋转的情况下设置半透明样式。在AndroidManifest.xml中将AssistActivity的theme属性注释掉即可,如下图所示
MSDK接入 中的各种问题_第2张图片

Didn’t find class “org.apache.http.conn.scheme.SchemeRegistry”

来龙去脉参考这篇文章
可以向其 AndroidManifest.xml的application节点下 添加以下内容:

Cleartext traffic not permitted 网络访问失败

解决方案参考Android P联网报错
官方文档配置方式

更改网络安全设置的操作步骤

新建一个xml作为网络安全设置的配置文件,放到Android/res目录下。参考文章里都是访问@xml/xxx.xml文件。
然后在AndroidManifest.xml文件中的application标签增加属性,关联到新建的配置文件。

修改targetSdkVersion

参考answers.unity
在AndroidManifest.xml中增加uses-sdk标签。
实际上Unity打包时,Target API Level可以设置,我这边默认是highest,所以会使用29造成问题。

如果只有apk或者设置不起效可以用命令查看apk文件的minSdkVersion和targetSdkVersion

你可能感兴趣的:(MSDK接入 中的各种问题)