youzan / YouzanMobileSDK-Android

有赞云AppSDK是为移动端应用打造的电商交易系统,通过一个SDK便可以在APP内集成有赞提供的整个交易服务。
https://www.youzanyun.com/app/sdk
113 stars 28 forks source link

x5 版本 7.0.0 webview Loading 时崩溃 #34

Open codemilestones opened 4 years ago

codemilestones commented 4 years ago
崩溃路径: 30144 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   Process: com.fenbi.android.solar, PID: 5780
30145 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable cannot be cast to android.graphics.drawable.AnimationDrawable
30146 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at com.youzan.androidsdkx5.view.LoadingView.setImage(LoadingView.java:50)
30147 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at com.youzan.androidsdkx5.plugin.WebClientWrapper$1.run(WebClientWrapper.java:423)
30148 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at android.os.Handler.handleCallback(Handler.java:900)
30149 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at android.os.Handler.dispatchMessage(Handler.java:103)
30150 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at android.os.Looper.loop(Looper.java:219)
30151 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at android.app.ActivityThread.main(ActivityThread.java:8347)
30152 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at java.lang.reflect.Method.invoke(Native Method)
30153 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
30154 09-23 19:22:33.431 E 5780 5780 AndroidRuntime:   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)

fragment 初始化代码

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    webView.loadUrl(SolarUrl.getMallYouzanStoreUrl())

    webView.subscribe(object : AbsAuthEvent() {
        override fun call(context: Context?, needLogin: Boolean) {
            if (needLogin && !UserManager.getInstance().isUserLogin) {
                LoginManager.builder().loginSuccessRouter(object : ILoginSuccessRouter {
                    override fun onLoginSuccess(activity: Activity) {
                        requestYouzanCookie(context)
                    }
                }).loginCloseRouter(object : ILoginCloseRouter {
                    override fun onLoginClose(activity: Activity) {
                        webView.syncNot()
                    }
                })
            } else {
                requestYouzanCookie(context)
            }
        }

        private fun requestYouzanCookie(context: Context?) {
            val token = YouzanToken()
            token.accessToken = "接口返回的access_token"
            token.cookieKey = "接口返回的cookie_key"
            token.cookieValue = "接口返回的cookie_value"

            YouzanSDK.sync(context!!, token)
            webView.sync(token)
        }
    })
}
dengshiwei commented 3 years ago

@foxapple 你本地 Gradle 缓存有 7.0 的包吗?能发给我一下吗