我已經和Android應用程序是可以正常使用而回。我正在使用Facebook提供的帳戶工具包進行用戶身份驗證,並且我碰到了一堵牆。在進行了一些更改並再次測試應用程序後,登錄不起作用。當用手機或短信登錄時,應用程序崩潰,編譯時驗證失敗。 老實說,我更多的Web比Android所以原諒我的無知,如果這是一件很小的。編譯時驗證失敗(帳戶套件的Android)
--------- beginning of crash
08-10 12:59:47.328 20322-20322/com.chris.tatusafety E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.chris.tatusafety, PID: 20322
java.lang.VerifyError: Rejecting class com.google.android.gms.internal.zzasm because it failed compile-time verification (declaration of 'com.google.android.gms.internal.zzasm' appears in /data/app/com.chris.tatusafety-1/base.apk)
at com.google.android.gms.auth.api.Auth.<clinit>(Unknown Source)
at com.facebook.accountkit.ui.AccountKitActivity.onCreate(AccountKitActivity.java:348)
at android.app.Activity.performCreate(Activity.java:6251)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2370)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2477)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5452)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:762)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)
08-10 12:59:47.329 20322-20365/com.chris.tatusafety V/FA: Inactivity, disconnecting from the service
以下是活動。
package com.chris...;
// Here I import all my libraries...
public class LoginActivity extends AppCompatActivity {
public static int APP_REQUEST_CODE = 1;
@Bind(R.id.phone_login_button) Button mPhone;
@Bind(R.id.title) TextView mTitle;
@Bind(R.id.email_login_button) Button mLogin;
@Bind(R.id.anonymous_login_button) Button mAnony;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_login);
//check for an access token
AccessToken accessToken = AccountKit.getCurrentAccessToken();
if (accessToken != null)
{
//if user was logged in it will not be null hence log in into application
loginSuccess();
}
}
@Override
protected void onActivityResult (final int requestCode, final int resultCode, final Intent data){
super.onActivityResult(requestCode, resultCode ,data);
//confirm that this response matches your request
if (requestCode == APP_REQUEST_CODE){
AccountKitLoginResult loginResult = data.getParcelableExtra(AccountKitLoginResult.RESULT_KEY);
if (loginResult.getError() != null){
//display a login error
String toastMessage = loginResult.getError().getErrorType().getMessage();
Toast.makeText(this, toastMessage, Toast.LENGTH_SHORT).show();
}else if (loginResult.getAccessToken() != null){
//on succesfull login, proceed
loginSuccess();
}
}
}
private void onLogin(final LoginType loginType){
//acount kit activity
final Intent accountKit = new Intent(this,AccountKitActivity.class);
//configure login type and response type
AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder=
new AccountKitConfiguration.AccountKitConfigurationBuilder(
loginType,AccountKitActivity.ResponseType.TOKEN
);
final AccountKitConfiguration configuration = configurationBuilder.build();
//launch account kit activity
accountKit.putExtra(AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION,configuration);
startActivityForResult(accountKit,APP_REQUEST_CODE);
}
public void onPhoneLogin(View view){
onLogin(LoginType.PHONE);
}
public void onEmailLogin(View view){
onLogin(LoginType.EMAIL);
}
private void loginSuccess() {
Intent mainActivity = new Intent(this,MainActivity.class);
startActivity(mainActivity);
finish();
}
public void onAnonymousLogin(View view) {
AccessToken accessToken = null;
loginSuccess();
}
}