Android常见技术问题
<p>[TOC]</p>
<h2>文档简介</h2>
<blockquote>
<p>Androlid接入MSSDK过程中常见的技术问题</p>
</blockquote>
<h2>问题记录</h2>
<p><strong>Q1、错误日志: attr/colorprimary not found</strong></p>
<p>1、一般是 <code>compileSdkVersion</code> 和依赖的support包版本不一致导致。
2、依赖缺少support包。</p>
<p><strong>Q2、微信分享回到应用崩溃</strong></p>
<p>报类似如下的错误:</p>
<pre><code class="language-java">java.lang.RuntimeException: Unable to start activity ComponentInfo{com.idreamsky.riko/com.idreamsky.riko.wxapi.WXEntryActivity}:
java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation</code></pre>
<p>1、Android 8.0上如果对透明,非全屏Activity指定屏幕方向,就会报这个异常。
2、解决方案(可供参考):</p>
<ul>
<li><a href="https://www.jianshu.com/p/96b7b39dcc9c">https://www.jianshu.com/p/96b7b39dcc9c</a></li>
<li><a href="https://juejin.im/post/5bf4f424e51d454cdc56d901">https://juejin.im/post/5bf4f424e51d454cdc56d901</a></li>
</ul>
<p><strong>Q3、编译报错 Error: Invoke-customs</strong></p>
<p>错误信息如下:</p>
<pre><code>Error: Invoke-customs are only supported starting with Android O (--min-api 26)</code></pre>
<p>解决方案:在你的module/build.gradle加入如下内容:</p>
<pre><code>android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}</code></pre>
<p>参考资料:<a href="https://stackoverflow.com/questions/49891730/invoke-customs-are-only-supported-starting-with-android-0-min-api-26">Invoke-customs are only supported starting with android 0 --min-api 26</a></p>
<p><strong>Q4、找不到资源,运行崩溃</strong></p>
<p>错误信息如下图所示:</p>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/d33a1448796998507d920bbf26157f38?showdoc=.jpg" alt="" /></p>
<p>一般是因为没有接入MSSDK的生命周期函数导致的。</p>
<p>可以参考 <a href="https://www.showdoc.cc/mssdk?page_id=2638430478177500">Android集成文档</a> 中的【3.4 APP生命周期监听调用】章节。</p>
<p><strong>Q5、MSSDK初始化失败:fail: i:-12002, MS-SDK初始化失败, object:null</strong></p>
<p>首先确认一下,是否在你的工程中配置了 <code>msConfig.json</code> 这个配置文件(从微服务控制台可以下载);
其次,检查一下是否将改 <code>msConfig.json</code> 配置文件放到了指定的 <code>assets/msld/config</code> 目录下,如下图:
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/146d432c1cd3c67fdeb6fa3d7137726b?showdoc=.jpg" alt="" />
最后检查一下,该文件里面配置信息是否有;</p>
<p><strong>Q6、只想出一个游戏母包,不想出一个公版包和一个渠道游戏母包,有没有解决方案?</strong></p>
<ul>
<li>接入Android版本的MSSDK解决方案</li>
</ul>
<p>第一步:在 <code>assets/msld/config</code> 目录下新建 <code>customConfig.json</code> 文件,里面可以自定义内容,格式建议采用json,例如:</p>
<pre><code class="language-json">{
"loginType": 1,
"otherKey": "custom_value"
}</code></pre>
<p>loginType=1代表公版,loginType=2代表渠道;</p>
<p>文件目录如下:
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/66838dadcc2f15ce4e3db2ee6fcac6ad?showdoc=.jpg" alt="" /></p>
<p>第二步:文件建立好之后,需要开发者自己提供可以获取改文件内容的接口,在游戏代码中根据配置处理不同的逻辑;</p>
<p>第三步:游戏接完MSSDK(Android版本)之后,出游戏母包上打包系统,可以在打包系统中修改 <code>customConfig.json</code> 文件内容,这样通过打包系统就可以出任意渠道包了。</p>
<ul>
<li>接入Unity版本的MSSDK解决方案</li>
</ul>
<p>请参考 <a href="https://www.showdoc.cc/mssdk?page_id=2644306103942782">Unity-MSSDK集成文档</a> 中的 <strong>3.1.8 自定义本地配置</strong> 章节。</p>
<p><strong>Q7、接入了用户中心,打开里面只有一个<code>用户帮助</code>的入口</strong></p>
<p>如果你使用MSSDK提供的接口,打开用户中心,虽然显示了用户中心面板,但是,只显示如下图所示的样子:
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/932141199e005dc3f1a3ffbe8460d492?showdoc=.jpg" alt="" />
出现这中情况,可能有如下3个原因:</p>
<ul>
<li>
<p>1、在业务控制台没有配置跟登录相关的参数;解决方案:请检查对应的开关是否打开;</p>
</li>
<li>2、控制台配置了相关的登录服务的参数,但是控制台配置的版本号和App的版本号不对应;解决方案:统一版本号;</li>
</ul>
<p>如图在控制台配置的版本号为1.0.0:
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/b56199da11d08fe9f8604f10cfccd00d?showdoc=.jpg" alt="" />
但是在App中配置的版本号是1.0,如下图:
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/7032b381d5ea18327076da8f51da1675?showdoc=.jpg" alt="" />
修改工程中对应的App版本号即可,或者修改控制台的版本号(新增版本号)。
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/3ba71cb5e2a5406250cc051f0146904c?showdoc=.jpg" alt="" />
修改完成之后,<strong>请卸载App重新安装调试</strong>;</p>
<ul>
<li>3、对应的渠道号配置不正确;解决方案,将 <code>msConfig.json</code> 里面的渠道号跟控制台渠道号保持一致;
如下图,在 <code>msConfig.json</code> 文件中的渠道号:
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/7292ced8231063cbc1b4d525afba40a8?showdoc=.jpg" alt="" />
在控制台配置的渠道号:
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/e46a1cd9f1a7c66cf2958540a439cdca?showdoc=.jpg" alt="" />
二者保持一致即可;
修改完成之后,<strong>请卸载App重新安装调试</strong>;</li>
</ul>