uniapp 使用 UTSAndroidHookProxy 初始化安全联盟oaid sdk 首次打开应用不执行 应用崩溃
uniapp 使用 UTSAndroidHookProxy 初始化安全联盟oaid sdk 首次打开应用不执行 应用崩溃
问题描述
uniapp 使用 UTSAndroidHookProxy,初始化安全联盟oaid sdk,首次打开应用不执行,应用崩溃。
自定义基座和第二次打开都没有问题,解决不了,求助大佬。
java.lang.UnsatisfiedLinkError: No implementation found for int com.bun.miitmdid.e.b()
so文件 需要自定义基座后才可以使用。
没太理解,大佬可以帮忙详细解释一下吗?有啥解决方案吗?首次安装打开崩溃,第二次打开就都正常了
自定义基座都正常,就是打正式包才有问题
FATAL EXCEPTION: main
Process: com.goodallst, PID: 12785
java.lang.UnsatisfiedLinkError: No implementation found for int com.bun.miitmdid.e.b() (tried Java_com_bun_miitmdid_e_b and Java_com_bun_miitmdid_e_b__)
at com.bun.miitmdid.e.b(Native Method)
at com.bun.miitmdid.core.MdidSdkHelper.<clinit>(Unknown Source:0)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at java.lang.Class.forName(Class.java:379)
at io.dcloud.p.e3.a(SourceFile:2)
at io.dcloud.p.e3.b(SourceFile:3)
at io.dcloud.a.i(SourceFile:15)
at io.dcloud.a.onPrivacySureAction(SourceFile:1)
at io.dcloud.WebAppActivity.onPrivacySureAction(SourceFile:1)
at io.dcloud.a$g.a(SourceFile:10)
at io.dcloud.common.ui.PrivacyManager$a.a(SourceFile:6)
at io.dcloud.common.ui.a$c$a.onClick(SourceFile:2)
at android.view.View.performClick(View.java:7729)
at android.view.View.performClickInternal(View.java:7698)
at android.view.View.access$3700(View.java:886)
at android.view.View$PerformClick.run(View.java:30220)
at android.os.Handler.handleCallback(Handler.java:966)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:293)
at android.app.ActivityThread.loopProcess(ActivityThread.java:10022)
at android.app.ActivityThread.main(ActivityThread.java:10011)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1242)
“enableOAID”: false 已经配置了,但是为啥io.dcloud.p.e3.a还会加载这个class
这是一个典型的 UTS 原生插件初始化时序问题。错误 UnsatisfiedLinkError 表明 OAID SDK 的 JNI 库在调用时尚未加载完成。
问题分析:
- 首次启动崩溃:UTSAndroidHookProxy 的初始化可能早于 OAID SDK 的 so 库加载
- 自定义基座正常:基座打包时 so 库已预加载,避开了时序问题
- 二次启动正常:首次崩溃后系统可能缓存了 so 库,后续启动时序不再冲突
解决方案:
修改 UTSAndroidHookProxy.kt,确保在 OAID SDK 初始化前显式加载 so 库:
override fun onProxyCreate() {
super.onProxyCreate()
// 提前加载 OAID SDK 的 so 库
try {
System.loadLibrary("miitmdid")
} catch (e: UnsatisfiedLinkError) {
e.printStackTrace()
}
// 延迟初始化 OAID SDK
Handler(Looper.getMainLooper()).postDelayed({
initOAIDSdk()
}, 500)
}
private fun initOAIDSdk() {
// 这里放置你的 OAID SDK 初始化代码
// 确保在主线程执行
}


