sinaweibosdk / weibo_android_sdk

新浪微博 Android SDK
1.83k stars 1.19k forks source link

3.0 单点登录出现java.lang.IllegalAccessError问题,但是用demo就不会。 #56

Closed gechaoqing closed 4 years ago

gechaoqing commented 9 years ago

02-03 11:41:31.498: E/AndroidRuntime(5686): java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation 02-03 11:41:31.498: E/AndroidRuntime(5686): at com.sina.weibo.sdk.auth.sso.SsoHandler$1.onServiceConnected(SsoHandler.java:95) 02-03 11:41:31.498: E/AndroidRuntime(5686): at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1114) 02-03 11:41:31.498: E/AndroidRuntime(5686): at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1131) 02-03 11:41:31.498: E/AndroidRuntime(5686): at android.os.Handler.handleCallback(Handler.java:733) 02-03 11:41:31.498: E/AndroidRuntime(5686): at android.os.Handler.dispatchMessage(Handler.java:95) 02-03 11:41:31.498: E/AndroidRuntime(5686): at android.os.Looper.loop(Looper.java:136) 02-03 11:41:31.498: E/AndroidRuntime(5686): at android.app.ActivityThread.main(ActivityThread.java:5476) 02-03 11:41:31.498: E/AndroidRuntime(5686): at java.lang.reflect.Method.invokeNative(Native Method) 02-03 11:41:31.498: E/AndroidRuntime(5686): at java.lang.reflect.Method.invoke(Method.java:515) 02-03 11:41:31.498: E/AndroidRuntime(5686): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 02-03 11:41:31.498: E/AndroidRuntime(5686): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 02-03 11:41:31.498: E/AndroidRuntime(5686): at dalvik.system.NativeStart.main(Native Method)

gechaoqing commented 9 years ago

我按照demo的配置那样做的,不知道是哪个地方没有对?不管是引入工程weiboSdk还是直接放入libs都是那样的错误,已经两天了,还没搞出来。。。。

RockyLin commented 9 years ago

微博分享是需要正式签名的apk。不是直接从eclipse Run的。

gechaoqing commented 9 years ago

嗯,我注册了应用,也签名了的。刚发现了原因。好像是百度Frontia的jar包与微博SDK冲突了,我删除Frontia就可以用了

niray commented 9 years ago

恩,楼主跟我的情景一样,捣鼓了好久,百度的Frontia 好坑。。 不能定制,楼主有解决方案了么

niray commented 9 years ago

而且发现新版的SDK里已经取缔了WeiboAuth.现在都不知道怎么用web登陆

gechaoqing commented 9 years ago

新的SDK可以指定用WEB方式登录哦,

mAuthInfo = new AuthInfo(this, APP_KEY, REDIRECT_URL, SCOPE); mSsoHandler = new SsoHandler(this, mAuthInfo); mSsoHandler.authorizeWeb(new AuthDialogListener());

niray commented 9 years ago

多谢

gechaoqing commented 9 years ago

我找到了百度与微博一致的地方了,sina/sso/RemoteSSO.java,我尝试了删除,然后重新打包用,微博单点登录没有问题了,但是会报错java.lang.VerifyError: com/baidu/frontia/base/util/Base64。怎么解?

niray commented 9 years ago

尝试不删除,改个名,然后打包试试

gechaoqing commented 9 years ago

不行,改名后不能打包,好像是百度把这个加密了的,有一个plugin-deploy.key文件。里面是加密的字符串。

niray commented 9 years ago

爱莫能助了,现在我这边是用 sina官方的sdk和百度的Frontia,但是只使用了sina官方的web登录以及sina官方的API分享,没用百度里新浪的任何功能。

miao1007 commented 9 years ago

参考这里解决的 https://developer.motorolasolutions.com/thread/30244