我正在尝试将Google Play服务应用到我的应用程序中。
我知道有一个名为BaseGameUtils的示例项目,我需要将其导入我的工作区并将其标记为库,将google-play-services_lib导入我的工作区后,我将其作为BaseGameUtils库中的库引用。最后,我在我实际想要发布到Google Play的项目中引用了BaseGameUtils和google-play-services_lib。
在所有这些连接中的某个地方,我的类路径中有一个相同名称的jar文件。 要解决此问题,我需要删除google-play-services_lib的一个引用,因为当我尝试导出项目时,我收到此错误:
无法执行dex:多个dex文件定义Lcom / google / ads / AdRequest $ ErrorCode;
好的,如果我取消选择“Android私人图书馆”,项目将会导出,但没有任何Google Play服务可用。当我尝试启动该类时,在启动应用程序时,我收到错误:
super.onCreate(savedInstanceState);
我明白我必须致电
setRequestedClients(BaseGameActivity.CLIENT_GAMES
| BaseGameActivity.CLIENT_APPSTATE);
前
// call BaseGameActivity's onCreate()
super.onCreate(savedInstanceState);
但它不起作用。这意味着GoogleApiClient将无法启动,因为未导出类。
@Override
public void onCreate(Bundle savedInstanceState) {
// set requested clients (games and cloud save)
setRequestedClients(BaseGameActivity.CLIENT_GAMES
| BaseGameActivity.CLIENT_APPSTATE);
// call BaseGameActivity's onCreate()
super.onCreate(savedInstanceState);
// game-specific logic:
setContentView(R.layout.pillow);
findViewById(R.id.sign_in_button).setOnClickListener(this);
findViewById(R.id.sign_out_button).setOnClickListener(this);
}
因此,如果我取消选择“Android私有库”,当我添加.jars时,项目将很好地导出我通常需要在外部使用并将它们添加到构建路径..但是Google Play服务。
我可以从构建路径中删除外部jar并将“Android Private Libraries”添加到构建路径,但后来我有多个google-play-services_lib。
我很困惑它要么两次,要么根本没有。
有谁知道发生了什么事?
答案 0 :(得分:0)
这对我来说就像一个与adobs相关的问题。 Admobs现已集成到Google Play Services jar中,但看起来您仍然在项目中包含单独的admobs jar。这两个罐子都包含相同的类名,因此这会导致您的问题。
我建议您从构建路径中删除GoogleAdMobAdsSdk.jar。
有关此问题的详细信息,请参阅