Android- Oauth 2.0谷歌登录
问题描述:
需要Android应用程序的良好和简单的例子,需要登录谷歌身份验证,我可以在我的应用程序中使用。 我是OAuth的新手,所以我正在尝试获取每个示例。Android- Oauth 2.0谷歌登录
我已经通过facebook进行了认证,获得了用户名和所有基本信息。 在Facebook上我从事这个例子:http://blog.doityourselfandroid.com/2011/02/28/30-minute-guide-integrating-facebook-android-application/
但是,当我从这个例子尝试:http://blog.doityourselfandroid.com/2011/08/06/oauth-2-0-flow-android/ 注册应用程序,并导入项目到Eclipse过了Git就不能运行。一切接着一切。总是在JsonFactory上出错。
代码:
private void performApiCall() {
try {
JsonFactory jsonFactory = new JacksonFactory();
HttpTransport transport = new NetHttpTransport();
CredentialStore credentialStore = new SharedPreferencesCredentialStore(prefs);
AccessTokenResponse accessTokenResponse = credentialStore.read();
GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(accessTokenResponse.accessToken,
transport,
jsonFactory,
OAuth2ClientCredentials.CLIENT_ID,
OAuth2ClientCredentials.CLIENT_SECRET,
accessTokenResponse.refreshToken);
final Latitude latitude = new Latitude(transport, accessProtectedResource, jsonFactory);
latitude.apiKey=OAuth2ClientCredentials.API_KEY;
LatitudeCurrentlocationResourceJson currentLocation = latitude.currentLocation.get().execute();
String locationAsString = convertLocationToString(currentLocation);
textView.setText(locationAsString);
} catch (Exception ex) {
ex.printStackTrace();
textView.setText("Error occured : " + ex.getMessage());
}
}
错误代码:
08-11 21:45:33.606: W/dalvikvm(464): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
08-11 21:45:33.606: E/AndroidRuntime(464): Uncaught handler: thread main exiting due to uncaught exception
08-11 21:45:33.606: E/AndroidRuntime(464): java.lang.NoClassDefFoundError: com.google.api.client.json.jackson.JacksonFactory
08-11 21:45:33.606: E/AndroidRuntime(464): at com.ecs.android.sample.oauth2.LatitudeApiSample.performApiCall(LatitudeApiSample.java:79)
08-11 21:45:33.606: E/AndroidRuntime(464): at com.ecs.android.sample.oauth2.LatitudeApiSample.onCreate(LatitudeApiSample.java:61)
08-11 21:45:33.606: E/AndroidRuntime(464): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-11 21:45:33.606: E/AndroidRuntime(464): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
08-11 21:45:33.606: E/AndroidRuntime(464): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
08-11 21:45:33.606: E/AndroidRuntime(464): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
08-11 21:45:33.606: E/AndroidRuntime(464): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
08-11 21:45:33.606: E/AndroidRuntime(464): at android.os.Handler.dispatchMessage(Handler.java:99)
08-11 21:45:33.606: E/AndroidRuntime(464): at android.os.Looper.loop(Looper.java:123)
08-11 21:45:33.606: E/AndroidRuntime(464): at android.app.ActivityThread.main(ActivityThread.java:4363)
08-11 21:45:33.606: E/AndroidRuntime(464): at java.lang.reflect.Method.invokeNative(Native Method)
08-11 21:45:33.606: E/AndroidRuntime(464): at java.lang.reflect.Method.invoke(Method.java:521)
08-11 21:45:33.606: E/AndroidRuntime(464): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
08-11 21:45:33.606: E/AndroidRuntime(464): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-11 21:45:33.606: E/AndroidRuntime(464): at dalvik.system.NativeStart.main(Native Method)
08-11 21:45:33.616: I/dalvikvm(464): threadid=7: reacting to signal 3
08-11 21:45:33.616: E/dalvikvm(464): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
如果有人知道是什么问题,也可以用后的源代码,并很好的解释项目的一些链接。
我的应用程序只需要通过谷歌身份验证登录并获取用户名。
答
你缺少项目中的一个jar文件,它出现:
java.lang.NoClassDefFoundError: com.google.api.client.json.jackson.JacksonFactory
所以,你可能想从这里找到它:
http://code.google.com/p/google-api-java-client/
如果你有图书馆,那么你可能只需要检查jar文件以将其导出,并且您可以在此答案中找到如何执行此操作的屏幕截图:
如果您转到配置构建路径,然后在订单和导出 选项卡上,验证您的jar文件的复选框已被选中,并且可能会解决您的问题。
为什么不显示错误,也许你的代码在错误发生的地方。 – 2012-08-11 21:31:52
编辑的问题,但我更喜欢另一个例子,因为这一个不做我所需要的 – Jack 2012-08-11 21:51:36