多个dex文件定义 – 删除额外的jar文件仍然无效。 我该怎么办?
我正在尝试将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。
我很困惑它要么两次,要么根本没有。
有谁知道发生了什么事?
这看起来像是一个与adobs相关的问题。 Admobs现已集成到Google Play Services jar中,但看起来您仍然在项目中包含单独的admobs jar。 这两个jar子都包含相同的类名,因此这会导致您的问题。
我建议您从构建路径中删除GoogleAdMobAdsSdk.jar。
有关此问题的更多信息,请查看
多个dex文件定义Lcom / google / ads / AdRequest $ ErrorCode和多个dex文件定义Lcom / google / ads / AdRequest $ ErrorCode