2014-10-06 74 views
2

似乎GCP的端点与Honeycomb以下的任何内容不兼容,是否有办法使它们向后兼容?Google Cloud Endpoints需要Android SDK级别11或更高

关于我收到的logcat的错误:

10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ java.lang.IllegalArgumentException: running on Android SDK level 10 but requires minimum 11 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:119) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:69) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at com.google.api.client.extensions.android.AndroidUtils.checkMinimumSdkLevel(AndroidUtils.java:48) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at com.google.api.client.extensions.android.json.AndroidJsonFactory.<init>(AndroidJsonFactory.java:75) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at {package}.fragment.StartFragment$RegistrationLoader.loadInBackground(StartFragment.java:144) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at {package}.fragment.StartFragment$RegistrationLoader.loadInBackground(StartFragment.java:120) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at android.support.v4.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:242) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:51) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:40) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at android.support.v4.content.ModernAsyncTask$2.call(ModernAsyncTask.java:123) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
10-06 15:21:33.950 2330-2358/{package} W/System.err﹕ at java.lang.Thread.run(Thread.java:1019) 
+0

你有任何解决方法吗?我也面临同样的错误。请回复。谢谢。 – Programmer 2015-04-13 13:08:41

+0

我找不到解决方案。我试过stsandro的答案,但我无法解决一些依赖和其他事情在我的项目中爆发。我最终打破了对这些Android版本的支持。 – CristianGuerrero 2015-04-13 16:41:53

回答

0

GCP Java tutorial,您可以创建使用API​​ 9终点:Android 2.3的(姜饼)的最低要求的SDK。这意味着它应该至少支持姜饼装置。这可能是生成客户端的问题或GCP Java文档中的不一致。我使用Maven Plugin for Eclipse生成客户端。我将尝试使用Android Studio生成客户端,以查看它是否有所作为。

5

我在我的android应用上得到完全相同的错误。所以,我看着学生AndroidJsonFactory在这里它是:在你的gradle这个build文件

compile('com.google.http-client:google-http-client-android:1.18.0-rc') { 
     exclude(group: 'com.google.android', module: 'android') 
} 

@TargetApi(11) 
@Beta 
public class AndroidJsonFactory extends JsonFactory { 

public AndroidJsonFactory() { 
    AndroidUtils.checkMinimumSdkLevel(11); 
} 

这从何而来。

这里是似乎为我工作的东西。

添加

compile 'com.google.http-client:google-http-client-gson:1.19.0' exclude module: 'httpclient' 

您gradle这个构建文件,并在你的代码如下:

/** 
* Class instance of the JSON factory. 
*/ 
public static final JsonFactory getJsonFactory() { 
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     // only for honeycomb and newer versions 
     return new AndroidJsonFactory(); 
    } else { 
     return new GsonFactory(); 
    } 
} 

然后使用getJsonFactory() - 方法,无论你建立你的后端服务的处理程序。我会做更多的测试,但我认为这应该起作用。

+0

我也遇到类似的问题,但在我的项目中我没有AndroidJsonFactory.java文件,但我可以在com.google.api.client.extensions.android.json包中找到AndroidJsonFactory.class文件。我在Registration.Builder builder = new Registration.Builder(AndroidHttp.newCompatibleTransport(),newAndroidJsonFactory(),null)中得到了异常 .setRootUrl(“https:// project_id/_ah/api /”);你能知道为什么它会来吗?以及同样的解决方案是什么?谢谢 – Programmer 2015-04-13 13:06:02

相关问题