我不能使用"exclude"在build.gradle文件中排除guava模块.
使用此依赖项块:
dependencies {
...
compile(group: 'com.google.api-client', name: 'google-api-client', version: '1.19.0') {
exclude(group: 'com.google.guava', module: 'guava-jdk5') // !!! Doesn't work!!!
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
我得到下面的依赖树.请注意,不排除guava-jdk5.
+--- com.google.api-client:google-api-client:1.19.0
| +--- com.google.oauth-client:google-oauth-client:1.19.0
| | +--- com.google.http-client:google-http-client:1.19.0
| | | ...
| | \--- com.google.code.findbugs:jsr305:1.3.9
| ...
| \--- com.google.guava:guava-jdk5:13.0
Run Code Online (Sandbox Code Playgroud)
...
请注意,最后一行仍包含番石榴模块,尚未排除.为什么?如何排除它?
我希望按钮背景在单击按钮后保持特定颜色,并在按下其他按钮时再次更改颜色.我认为这是"以州为中心"的状态.
但是,我似乎只为我的Button按下了两个状态.
我是否正确理解state_focused状态,或者我的StateListDrawable(见下文)是错误的?
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false"><shape>
<solid android:color="#00ff00" />
</shape></item>
<item android:state_pressed="true"><shape>
<solid android:color="#ff0000" />
</shape></item>
<item><shape>
<solid android:color="#0000ff" />
</shape></item>
</selector>
Run Code Online (Sandbox Code Playgroud) 当我在Android Studio中运行Android应用程序时,我收到此错误
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/common/annotations/Beta;
...
Run Code Online (Sandbox Code Playgroud)
这是gradlew -q:app:dependencies的输出
+--- project :shared
+--- com.google.api-client:google-api-client:1.19.0
| +--- com.google.oauth-client:google-oauth-client:1.19.0
| | +--- com.google.http-client:google-http-client:1.19.0
| | | +--- com.google.code.findbugs:jsr305:1.3.9
| | | \--- org.apache.httpcomponents:httpclient:4.0.1
| | | +--- org.apache.httpcomponents:httpcore:4.0.1
| | | +--- commons-logging:commons-logging:1.1.1
| | | \--- commons-codec:commons-codec:1.3
| | \--- com.google.code.findbugs:jsr305:1.3.9
| +--- com.google.http-client:google-http-client-jackson2:1.19.0
| | +--- com.google.http-client:google-http-client:1.19.0 (*)
| | \--- com.fasterxml.jackson.core:jackson-core:2.1.3
| \--- com.google.guava:guava-jdk5:13.0
+--- com.google.http-client:google-http-client-gson:1.19.0
| \--- com.google.code.gson:gson:2.1
+--- com.google.api-client:google-api-client-android:1.19.0
| +--- com.google.api-client:google-api-client:1.19.0 …
Run Code Online (Sandbox Code Playgroud) 我似乎无法在Eclipse Indigo 3.7.1的Android项目中访问Arrays.copyOfRange在Ubuntu 11.10上.
我的JRE是java-6-openjdk,我认为它包含了Arrays.copyOfRange
例如,如果我有这个代码:
int[] debug = new int[5];
int[] x = Arrays.copyOfRange(debug,0,4);
Run Code Online (Sandbox Code Playgroud)
Eclipse告诉我
该
copyOfRange(int[], int, int)
类型的方法未定义Arrays
我不明白,因为Android参考Arrays包含这种方法用于数组.
有任何想法吗?
我想为Google Cloud Endpoints类禁用GZipContent,以便POST可以在本地开发服务器上运行.
最新的GPE版本生成此端点构建器:
public static final class Builder extends AbstractGoogleJsonClient.Builder {
public Builder(HttpTransport transport, JsonFactory jsonFactory,
HttpRequestInitializer httpRequestInitializer) {
super(
transport,
jsonFactory,
...);
}
Run Code Online (Sandbox Code Playgroud)
和Google文档建议像这样使用它:
Myendpoint.Builder endpointBuilder = new Myendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
credential);
Run Code Online (Sandbox Code Playgroud)
有谁知道如何为端点禁用GZipContent?
谢谢.
我正在开发一款Android应用,我在其中使用Google Play游戏服务API.我已经成功实现了各个方面的排行榜,除了我看不到其他玩家的得分,只显示了我自己当前登录的玩家得分.
它就好像我的测试用户没有与当前用户分享他们的游戏活动,但实际上他们有,并且这个事实在他们的帐户中是可见的.我还确认当前用户与其他测试用户共享应用程序.更新:我可以使用"全部"看到其他分数,但不能在"社交"中看到.不过,为什么"社交"中没有分数?
我使用这个GoogleApiClient:
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN)
.addApi(Games.API).addScope(Games.SCOPE_GAMES)
.build();
Run Code Online (Sandbox Code Playgroud)
我可以成功切换每个帐户的帐户,登录,提交分数等,但是当我开始排行榜活动时,我根本看不到其他测试人员帐户分数.
关于在哪里看的任何想法?
android leaderboard google-plus google-play-services google-play-games
我在Google Cloud Endpoints Android应用中首次尝试在调试模式下使用身份验证时遇到问题.我设置了这样的凭据:
credential = GoogleAccountCredential.usingAudience(this,
"server:client_id:long-string-i-got-from-api-console");
credential.setSelectedAccountName(accountName);
Run Code Online (Sandbox Code Playgroud)
然后尝试像这样使用它:
final String LOCAL_APP_ENGINE_SERVER_URL = "http://xxx.xxx.x.xxx:8888";
Testdbendpoint.Builder endpointBuilder = new Testdbendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new GsonFactory(),
credential);
endpointBuilder.setRootUrl(LOCAL_APP_ENGINE_SERVER_URL + "/_ah/api/");
Testdbendpoint endpoint = endpointBuilder.build();
try {
TestDB testDB = new TestDB().setId(10101L);
TestDB result = endpoint.insertTestDB(testDB).execute(); //-- fails here!!!!
} catch ...
Run Code Online (Sandbox Code Playgroud)
但尝试失败,我在logCat中收到这些消息:
03-06 23:33:20.418:W/System.err(11861):引起:com.google.android.gms.auth.GoogleAuthException:Unknown 03-06 23:33:20.418:W/System.err(11861) ):at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)03-06 23:33:20.423:W/System.err(11861):at com.google.android.gms.auth.GoogleAuthUtil .getToken(Unknown Source)03-06 23:33:20.428:W/System.err(11861):at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java) :192)
在端点App Engine后端,我该如何设置
@Api(name=...
clientIds = {what-goes-here-exactly-1},
audiences = {what-goes-here-exactly-2}
)
Run Code Online (Sandbox Code Playgroud)
在Android客户端中,我该如何设置
credential = GoogleAccountCredential.usingAudience(this,
what-goes-here-exactly-3);
Run Code Online (Sandbox Code Playgroud)
这里有相互矛盾/混淆/不清楚的说明http://devthots.blogspot.com/ 和https://developers.google.com/appengine/docs/java/endpoints/consume_android#making-authenticated-calls
我在API控制台的API访问中生成了许多密钥,但不确定如何使用它们并附加/添加它们以用于上述语句.
谢谢.
Google Plugin for Eclipse包含一个自动生成云端点客户端库的工具.但似乎没有一种简单的方法可以将生成的source.jar文件移动到您的Android源代码中.
文档https://developers.google.com/appengine/docs/java/endpoints/consume_android说
端点生成会生成源jar文件.将此jar文件的内容添加到Android项目中.
似乎不可能将source.jar文件放入Android/lib或/ libs,因为源是.java而不是.class形式.所以我只是手动复制GPE生成的源代码(它们放在AppEngine项目的endpoints-lib文件夹中).这可能非常麻烦,尤其是当您有多个端点并经常进行编辑时.
另请参阅将Android应用程序连接到Google Cloud Endpoints时出错:找不到类
有没有人知道在Android项目中直接实际使用sources.jar文件的方法?谢谢.
如何将多个实体从客户端传递到Google Cloud端点?
例如,在服务器的Endpoint api源文件中轻松完成传递单个实体:
public class SomeEndpoint {
...
@ApiMethod(...)
public MyEntity someMethod(MyEntity someEntity) {
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
然后在客户端我可以轻松打电话
endpoint.someMethod(someEntity).execute()
Run Code Online (Sandbox Code Playgroud)
但是,如果我想将两个实体传递给端点怎么办?,如下所示:
@ApiMethod(...)
public MyEntity otherMethod(MyEntity someEntity, MyEntity someOtherEntity) {
...
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,GPE只生成一个带有单个MyEntity参数的端点库.
是否可以传递多个Entity参数?
谢谢.