0

У меня есть приложение Android для Android. Сервер находится в java. Я тестирую веб-службу входа в бэкэнд. Если код вызывает конечную точку для отправки информации для входа, я получаю исключение. Я включаю всю трассировку стека. Но основная причина, кажется, LoginActivity.java:262:java.lang.VerifyError при вызове конечной точки с android

service.registerUser(request).execute();//service is endpoint 

Там нет ничего особенного об этом входе. Это просто POST с данными. Я не знаю, как интерпретировать строку ошибки

Caused by: java.lang.VerifyError: com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler 

Я думаю, что это то, что мне нужно понять.

Во всяком случае, здесь весь след:

04-03 11:48:50.028: E/AndroidRuntime(9385): FATAL EXCEPTION: AsyncTask #1 
04-03 11:48:50.028: E/AndroidRuntime(9385): java.lang.RuntimeException: An error occured while executing doInBackground() 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at android.os.AsyncTask$3.done(AsyncTask.java:200) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at java.lang.Thread.run(Thread.java:1096) 
04-03 11:48:50.028: E/AndroidRuntime(9385): Caused by: java.lang.VerifyError: com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.initialize(GoogleAccountCredential.java:124) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at com.google.api.client.http.HttpRequestFactory.buildRequest(HttpRequestFactory.java:93) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.buildHttpRequest(AbstractGoogleClientRequest.java:292) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:412) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:345) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:463) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at com.example.learning.LoginActivity$UserLoginTask.doInBackground(LoginActivity.java:262) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at com.example.learning.LoginActivity$UserLoginTask.doInBackground(LoginActivity.java:1) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at android.os.AsyncTask$2.call(AsyncTask.java:185) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
04-03 11:48:50.028: E/AndroidRuntime(9385):  ... 4 more 
04-03 11:48:50.160: W/IInputConnectionWrapper(9385): showStatusIcon on inactive InputConnection 

EDIT:

Чтобы настроить учетные данные, я просто следовать шаблон:

public static GameApp getService(Context context) { 
     GoogleAccountCredential credential = GoogleAccountCredential.usingAudience(context, StateValues.AUDIENCE); 
     GameApp.Builder builder = new GameApp.Builder(
      AndroidHttp.newCompatibleTransport(), 
      new GsonFactory(), 
      credential); 
     GameApp service = builder.build(); 
     return service; 
    } 
+1

Можете ли вы показать код, в котором вы настроили свой GoogleAccountCredential? – aez

+0

@aez Я отредактировал. – learner

+1

Можете ли вы перечислить банки, которые находятся в папке libs /? Похоже, что у вас могут быть разные версии тех же классов в вашем пути к классам. Вы работаете в эмуляторе, не так ли? –

ответ

2

Похоже, проблема была google-play-service.jar. Я добавлял его через путь сборки. Теперь я добавил его вручную в папку libs, и эта проблема исчезла. Спасибо всем за комментирование. Будьте внимательны ко всем.

Смежные вопросы