2017-01-02 2 views
0

ich eine adview (admob) im Boden eines webview setzen wirdAndroid Studio: Fehler: Keine Ressource festgestellt, dass die angegebenen Namen übereinstimmt (bei ‚layout_above‘ mit dem Wert ‚@ id/adView‘)

Wenn ich Gradle Sync, bekomme ich diesen Fehler. Könnten Sie mir bitte helfen, dieses Problem zu lösen?

C:\Users\danie\AndroidStudioProjects\PokemonDamageCalculator\app\src\main\res\layout\activity_main.xml Error:(20, 31) No resource found that matches the given name (at 'layout_above' with value '@id/adView'). C:\Users\danie\AndroidStudioProjects\PokemonDamageCalculator\app\build\intermediates\res\merged\debug\layout\activity_main.xml Error:(20, 31) No resource found that matches the given name (at 'layout_above' with value '@id/adView'). Error:Execution failed for task ':app:processDebugResources'. com.android.ide.common.process.ProcessException: Failed to execute aapt

Das ist mein MainActivity.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/res-auto" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
android:orientation="vertical" 
tools:context="danilkp1234.com.pokemondamagecalculator.MainActivity"> 

<include 
    layout="@layout/content_main" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@id/adView" 
    android:layout_weight="1" 
    android:orientation="vertical"> 

    <WebView 
     android:id="@+id/webview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    </WebView> 
</LinearLayout> 
+0

Ihre MainActivity.xml scheint nicht vollständig zu sein. Das erste LinearLayout wird nicht geschlossen –

+1

'android: Layout_oben 'ist ein ** RelativeLayout ** Attribut. Es wird nicht in einem LinearLayout-Container funktionieren. –

Antwort

1

ersetzen

android:layout_above="@id/adView" 

mit

android:layout_above="@+id/adView" 

hinzufügen müssen nur '+' nach '@'

+0

Nein, ist es nicht. '+' ist nur für die Definition der ID zum ersten Mal –

+0

So ist es, weil das Layout bezieht sich auf eine Ansicht mit der ID 'adView', aber es ist nicht actaully vorhanden, daher gibt es einen Fehler! korrigiere mich, wenn ich falsch liege! – Tulsi

+0

Ja, hast du auch recht. In der Regel ist dieses Layout durcheinander. 'android: layout_above' wird nur in relativeLayout verwendet. root 'LinearLayout' Tag nicht in der Nähe zu –

0

Wo ist die Ansicht mit der ID adView?

Auch android:layout_above wird für Ansichten innerhalb einer , nicht LinearLayout verwendet. In einer Ansichten können unten, oben oder nebeneinander mit android:layout_... Attribute platziert werden. LinearLayout verschiebt automatisch Ansichten unter oder nebeneinander, abhängig vom Parameter android:orientation.

Wenn Sie LinearLayout weiter benutzen wollen, sollten Sie

android:layout_above="@id/adView" 

entferne ich hoffe, das hilft.

0

Sie haben einen Fehler in android:layout_above="@id/adView" beim ersten Versuch @id/adView to @+id/adView.

auch zu ändern, android:layout_above="" in RelativeLayout verwendet wird, damit Ihr Linearlayout keine Änderung beeinflussen. Ändern Sie das übergeordnete LinearLayout in RelativeLayout und fügen Sie dann weitere View (mit id adView) hinzu, um eine Änderung zu bewirken.

Verwandte Themen