从 android 调用端点时出现 java.lang.VerifyError

标签 java android google-app-engine google-cloud-endpoints google-eclipse-plugin

我有一个应用程序引擎连接的 Android 应用程序。服务器是java的。我正在测试后端的登录网络服务。在代码调用端点发送登录信息的地方,我遇到异常。我包括整个堆栈跟踪。但根本原因似乎是 LoginActivity.java:262:

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

编辑:

要设置凭据,我只需遵循模板即可:

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;
    }

最佳答案

看起来问题出在 google-play-service.jar 上。我一直通过构建路径添加它。现在我手动将其添加到 libs 文件夹中,这个问题就消失了。感谢大家的评论。给大家点赞。

关于从 android 调用端点时出现 java.lang.VerifyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15795223/

相关文章:

java - Sonar Java Web客户端: Authors by line null

java - Dropwizard 客户端类型不匹配

java - IntelliJ - 方法引用可能会改变语义

java - 如何获取有关电话号码和位置的数据

从给定地址获取纬度和经度的android问题

google-app-engine - GAE webapp2 session : the correct process of creating and checking sessions

java - Android Socket 未被实例化

android - 如何从任何地方获取包名?

python - 使用任务队列发送邮件

google-app-engine - 在 NDB(Python 的 Google App Engine 数据存储库)中自动使用缓存是否会使事务模型无效?