Multiple dex files define - Deleting extra jar file still not working. What should I do?

﹥>﹥吖頭↗ 提交于 2019-12-04 05:52:03

问题


I'm trying to implement Google Play Services into my application.

I understand that there is a sample project named BaseGameUtils and I need to import it into my workspace and mark it as a library, After importing google-play-services_lib into my workspace, I reference it as a library in the BaseGameUtils library. Lastly I reference both BaseGameUtils and google-play-services_lib in the project I actually want to publish to Google Play.

Somewhere in all those connections, I have a jar file in my class path by the same name. To solve this problem I need to delete one of the references of google-play-services_lib because when I try to export the project I receive this error:

Unable to execute dex: Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode;

OK, so if i deselect "Android Private Libraries" the project will export but none of the Google Play Services are available. When I try to launch the class, upon startup of the app I get the error:

 super.onCreate(savedInstanceState);

I understand that I have to call

 setRequestedClients(BaseGameActivity.CLIENT_GAMES
            | BaseGameActivity.CLIENT_APPSTATE);

before

    // call BaseGameActivity's onCreate()
    super.onCreate(savedInstanceState);

but it's not working. Which means the GoogleApiClient won't start because the classes weren't exported.

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

So, if I deselect "Android Private Libraries" , the project will export nicely when I add the .jars I normally need to use externally and add them to the build path.. But Google Play Services.

I can remove the external jar from the build a path and add "Android Private Libraries" to the build path, but then I have multiple google-play-services_lib.

I'm so confused It's either there twice or not at all.

Does anyone have any idea what's going on?


回答1:


This looks to me like an admobs related issue. Admobs has now been integrated into the Google Play Services jar, but it looks like you are still including the separate admobs jar in you project. Both these jars contain the same class names, hence this causes your problem.

I suggest you remove GoogleAdMobAdsSdk.jar from your build path.

For more information on this problem, please look at

Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode and Multiple dex files define Lcom/google/ads/AdRequest$ErrorCode



来源:https://stackoverflow.com/questions/24767977/multiple-dex-files-define-deleting-extra-jar-file-still-not-working-what-shou

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!