diff --git a/app/build.gradle b/app/build.gradle index b160dad573..d42e98113b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -47,7 +47,11 @@ android { ndk { // 如果不添加 `arm64` 调用系统的 PackageManager 的方法读取安装包信息的时候会出现 native 层闪退,草 - abiFilters "armeabi-v7a", "arm64-v8a", "x86" + // 添加了 `arm64` 以后部分 5.0 的设备会报用错 so 的问题, + // couldn't find DSO to load: libimagepipeline.so caused by: dlopen failed: "/data/data/com.gh.gamecenter/lib-main/libimagepipeline.so" is 64-bit instead of 32-bit result: 0 + // 以 OPPO R7PLUS 为例,明明设备是骁龙 615,ARMv8-64 bit 的设备却不支持 arm64 的 abi + // 惊了 + abiFilters "armeabi-v7a", "x86" } renderscriptTargetApi 18 diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java index ec594c84ee..a9f59127e5 100644 --- a/app/src/main/java/com/gh/common/constant/Constants.java +++ b/app/src/main/java/com/gh/common/constant/Constants.java @@ -207,6 +207,9 @@ public class Constants { // 新分类2.0引导 public static final String SP_SHOW_CATEGORY_GUIDE = "show_category_guide"; + // 用户是否需要 weibo x86 so + public static final String SP_USER_NEED_WEIBO_X86_SO = "user_need_weibo_x86_so"; + // 内容视频播放选项 public static final String SP_CONTENT_VIDEO_OPTION = "content_video_option"; diff --git a/app/src/main/java/com/gh/common/util/LoginHelper.kt b/app/src/main/java/com/gh/common/util/LoginHelper.kt index 9dc9806805..07e9585186 100644 --- a/app/src/main/java/com/gh/common/util/LoginHelper.kt +++ b/app/src/main/java/com/gh/common/util/LoginHelper.kt @@ -3,6 +3,7 @@ package com.gh.common.util import android.app.Activity import android.content.Intent import com.gh.common.constant.Config +import com.gh.common.constant.Constants import com.gh.gamecenter.R import com.gh.gamecenter.user.LoginTag import com.halo.assistant.HaloApp @@ -169,6 +170,15 @@ object LoginHelper { // 微博登录 @JvmStatic fun loginWithWeibo(loginCallback: LoginCallback, context: Activity) { + + tryWithDefaultCatch { + if (SPUtils.getBoolean(Constants.SP_USER_NEED_WEIBO_X86_SO)) { + SentryHelper.onEvent( + "weibo_sdk_login_error", + "exception_digest", "no_x86_so"); + } + } + mWBAPI = WBAPIFactory.createWBAPI(context) //初始化微博分享 mLoginCallback = WeakReference(loginCallback) mWBAPI.registerApp( diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index c8c5706b16..bc155af834 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -1010,9 +1010,7 @@ public class MainActivity extends BaseActivity { // 所以 x86 的 AS 模拟器/ Genymotion 会初始化失败,但实测部分硬性需要提供 x86 SO 的模拟器 (如雷电) 却又能正常使用 // 这里加个简单日志,看看到底有没有(有多少)真实设备出现初始化失败的问题 if (!BuildConfig.DEBUG) { - SentryHelper.INSTANCE.onEvent( - "weibo_sdk_init_error", - "exception_digest", e.getLocalizedMessage()); + SPUtils.setBoolean(Constants.SP_USER_NEED_WEIBO_X86_SO, true); e.printStackTrace(); } } diff --git a/dependencies.gradle b/dependencies.gradle index cf9269238c..a0a7fa3ff4 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -100,7 +100,7 @@ ext { skeleton = "1.1.1" shimmerlayout = "2.1.0" mta = "6.7.9" - romChecker = "1.0.2" + romChecker = "1.0.3" oss = "2.9.2" toolargetool = "0.3.0" chart = "3.1.0"