简体   繁体   中英

Android Studio Build failed when using Google Play services for AdMob

I've just finished making my app and I am now trying to implement AdMob ads. I'm using Android Studio and this is how I've done it.

First, I added Google Play services as a dependency

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':zip_file')
compile project(':wheel')
compile project(':shake_detector')
compile project(':facebook')
compile 'com.google.android.gms:play-services:5.2.08'

}

I then added the necessary things to AndroidManifest

<activity
        android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        />
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

And then I added Ads to XML

<com.google.android.gms.ads.AdView android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    ads:adUnitId="ca-app-pub-1606xxxx7xx50xx0/xxxx160xx2"
    ads:adSize="BANNER"/>

As soon as I added Ads to XML, an error showed in the XML editor:

java.lang.VerifyError: Expecting a stackmap frame at branch target 57
Exception Details:
  Location:
com/google/android/gms/ads/AdView.onMeasure(II)V @20: ifnull
  Reason:
Expected stackmap frame at this location.
  Bytecode:
0000000: 033e 0336 042a 03b6 0015 3a05 2ab6 0014
0000010: 3a06 1905 c600 2519 05b6 000b 1008 9f00
0000020: 1b2a 1905 1b1c b600 1919 05b6 000a 3e19
0000030: 05b6 0009 3604 a700 1f19 06c6 001a 2ab6
0000040: 0016 3a07 1906 1907 b600 133e 1906 1907
0000050: b600 1236 041d 2ab6 0018 b800 2a3e 1504
0000060: 2ab6 0017 b800 2a36 042a 1d1b b800 0d15
0000070: 041c b800 0db6 001a b1                 

at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)
at java.lang.Class.getConstructor0(Class.java:2803)
at java.lang.Class.getConstructor(Class.java:1718)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:310)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:100)
at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:206)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:131)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:755)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:373)
at     com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:393)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:337)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:575)
at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:564)
at     com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932)
at     com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:564)
at com.android.tools.idea.rendering.RenderService.render(RenderService.java:691)
at     org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:604)
at     org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1900(AndroidLayoutPreviewToolWindowManager.java:80)
at     org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:546)
at     com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
at     com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
at     com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
at     com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
at     org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:541)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:327)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Now everytime I try to run the app (or build project), this is the error I get

Error:Execution failed for task ':app:dexDebug'.

com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:\\Android Development\\Android Studio\\sdk\\build-tools\\android-4.4W\\dx.bat --dex --num-threads=4 --output C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\dex\\debug C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\classes\\debug C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\dependency-cache\\debug C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\pre-dexed\\debug\\android-support-v4-ee598d69cced4ae2d0367cf320b535877ffadf7a.jar C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\pre-dexed\\debug\\bolts-70810bd866f930573e290daf7ec3dc1948286267.jar C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\pre-dexed\\debug\\classes-0c36385bc77adc652fbbca692188f2ba3a839958.jar C:\\Users\\whizs_000\\AndroidStudioP rojects\\Sleepwithnaturesounds\\app\\build\\intermediates\\pre-dexed\\debug\\classes-2599f9358b4e94ed98b20719bc88ed4c00c1bfff.jar C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\pre-dexed\\debug\\classes-3a8f3fce0efbd622d28c51e87741fcdeac2d6970.jar C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\pre-dexed\\debug\\classes-407783d6a24b188172e1a767d67e0a0b4dae5728.jar C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\pre-dexed\\debug\\classes-8067c76d4a10c4f3c1e28bb6e233007f282b8655.jar C:\\Users\\whizs_000\\AndroidStudioProjects\\Sleepwithnaturesounds\\app\\build\\intermediates\\pre-dexed\\debug\\support-v4-19.1.0-3704bce472ca0d2a13ecadbd5f94b970f7bf2d0e.jar Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)

Any idea what could be wrong? Last time I was implementing ads, I was doing it in Eclipse so I'm a bit new here in AS.

[...] UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/[...]

This indicates that a superfluous/duplicate library is included in the build process. Please check the libs/ folders in the project and any included library.

compile 'com.google.android.gms:play-services:5.2.08'

Please use version 5.0.89 instead of 5.2.08 because the latter version isn't rolled out yet and apps using it can't be published on Google Play.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM