首先上异常的截图:
报错的主要原因是没找到第三方的类。解决方法:项目右键Properties ------->Build Path------->Order And Export将第三方的jar包打勾。然后Clear自己的项目重新编译运行解决上述问题。详细请看截图
操作完上述步骤后Clear项目然后编译运行就OK了。
顺便把新浪OAuth认证源码给贴出来需要的哥们下载看看:
认证需要新浪的jar包。signpost-commonshttp4-1.2.1.1.jar signpost-core-1.2.1.1.jar下载地址:jar包下载
===================文件名:AuthActivity.java=================== package OAuth4Sina.com; import java.util.SortedSet; import oauth.signpost.OAuthProvider; import oauth.signpost.basic.DefaultOAuthProvider; import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer; import oauth.signpost.exception.OAuthCommunicationException; import oauth.signpost.exception.OAuthExpectationFailedException; import oauth.signpost.exception.OAuthMessageSignerException; import oauth.signpost.exception.OAuthNotAuthorizedException; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; /** * * <p>Title: AuthActivity.java</p> * <p>Description: OAuth认证的实现</p> * <p>Copyright: Copyright (c) 2011</p> * <p>Company: CTX Teachnology</p> * <p>CreateTime: 2012-12-22 下午04:21:04</p> * * @author YGC * @version V1.0 * @since JDK1.6 */ public class AuthActivity extends Activity { CommonsHttpOAuthConsumer httpOauthConsumer; OAuthProvider httpOauthprovider; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn2 = (Button) findViewById(R.id.btn); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { String consumerKey = "434313181";//替换成自己应用的key String consumerSecret = "458afde9c2ad61e9690296d8cca6488b";//也是自己的Secret String callBackUrl = "myapp://AuthActivity"; httpOauthConsumer = new CommonsHttpOAuthConsumer( consumerKey, consumerSecret); httpOauthprovider = new DefaultOAuthProvider( "http://api.t.sina.com.cn/oauth/request_token", "http://api.t.sina.com.cn/oauth/access_token", "http://api.t.sina.com.cn/oauth/authorize"); String authUrl = httpOauthprovider.retrieveRequestToken( httpOauthConsumer, callBackUrl); startActivity(new Intent(Intent.ACTION_VIEW, Uri .parse(authUrl))); int b = 4; } catch (Exception e) { String s = e.getMessage(); } } }); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); Uri uri = intent.getData(); String verifier = uri .getQueryParameter(oauth.signpost.OAuth.OAUTH_VERIFIER); try { httpOauthprovider.setOAuth10a(true); httpOauthprovider.retrieveAccessToken(httpOauthConsumer, verifier); } catch (OAuthMessageSignerException ex) { ex.printStackTrace(); } catch (OAuthNotAuthorizedException ex) { ex.printStackTrace(); } catch (OAuthExpectationFailedException ex) { ex.printStackTrace(); } catch (OAuthCommunicationException ex) { ex.printStackTrace(); } SortedSet<String> user_id = httpOauthprovider.getResponseParameters() .get("user_id"); String userId = user_id.first(); String userKey = httpOauthConsumer.getToken(); String userSecret = httpOauthConsumer.getTokenSecret(); TextView text = (TextView) findViewById(R.id.text); text.setText("suerId:" + userId + "/userKey:" + userKey + "/userSecret:" + userSecret); } }
源码地址:源码下载