Fehlende Unterstützung für Firebase App Indexing (Android Lint)

149

Ich erhalte diese Flusenwarnung, wenn ich meinen Code (Analysieren> Codes überprüfen) in Android-Studios analysiere.

Die App kann von der Google-Suche nicht indiziert werden. Erwägen Sie, mindestens eine Aktivität mit einem ACTION-VIEW-Intent-Filler hinzuzufügen. Weitere Informationen finden Sie in der Problemerklärung.

Was ist diese Warnung und wie mache ich meine App durch die Google-Suche indizierbar? Es klingt wichtig für SEO, aber ich kann keine Details bei Google finden.

Ich möchte auch wissen, wie ich von Android Studio aus auf die "Problemerklärung" zugreifen kann.

Geben Sie hier die Bildbeschreibung ein

Bearbeiten:

"App kann von der Google-Suche nicht indiziert werden" war die alte Warnung. Die neue Warnung lautet "Fehlende Unterstützung für die Firebase App-Indizierung".

Engel Koh
quelle

Antworten:

106

Ich habe herausgefunden, wie ich auf die "Problemerklärung" zugreifen kann. Ich muss mit der Maus über einen Inspektionsfehler fahren, um die vollständige Problemerklärung inline anzuzeigen (und Strg-F1 drücken).

Geben Sie hier die Bildbeschreibung ein

Das Schlüsselwort, das mir fehlt, ist "Deep Links"!

Im Folgenden finden Sie die Android-Entwicklerseite, auf der Sie Deep Links erstellen können. "Damit Google Ihren App-Inhalt crawlen und Nutzer Ihre App über die Suchergebnisse eingeben können."

http://developer.android.com/training/app-indexing/deep-linking.html

Das Folgende ist das Code-Snippet zum Erstellen einer Deep Link. Ich habe keine Ahnung, wie Google meine App crawlen kann, indem ich sie einfach hinzufüge ...

<activity
    android:name="com.example.android.GizmosActivity"
    android:label="@string/title_gizmos" >
    <intent-filter android:label="@string/filter_title_viewgizmos">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
        <data android:scheme="http"
              android:host="www.example.com"
              android:pathPrefix="/gizmos" />
        <!-- note that the leading "/" is required for pathPrefix-->
        <!-- Accepts URIs that begin with "example://gizmos”
        <data android:scheme="example"
              android:host="gizmos" />
        -->
    </intent-filter>
</activity>

Es gibt auch eine Notiz, die besagt

Note: Intent filters may only contain a single data element for a URI pattern. 
Create separate intent filters to capture additional URI patterns.
Engel Koh
quelle
2
Dies dient zum Konfigurieren von Deep-Links in Ihrer App. Beispiel: Wenn ein Benutzer auf der mobilen Suche nach einem bestimmten Schlüsselwort sucht, das zu Ihrem Web / Ihrer App passt, kann er direkt auf Ihre Absicht verweisen, wodurch die spezifische Aktivität / Ansicht in Ihrer App geöffnet werden kann. Kurz gesagt, mit der Suche können Benutzer direkt in Apps öffnen.
Nagesh Susarla
@NageshSusarla, also lautet das Schlüsselwort im obigen Beispiel "gizmos"?
Angel Koh
6
developer.google.com/app-indexing/android/app enthält detaillierte Informationen dazu. In diesem Fall weist jedes Keyword, das auf Ihrer Seite zu example.com/gizmos in den Suchergebnissen führt, auf diese Absicht hin.
Nagesh Susarla
3
Ich verstehe es nicht, was soll ich sagen?
Busuu
6
Müssen Sie eine eigene Website haben, um sie hinzuzufügen?
Azurespot
28

Tatsächlich gibt es zwei Möglichkeiten, um mit dem Problem "App ist nicht durch Google indizierbar" umzugehen.

  1. Fügen Sie der App wie oben beschrieben einen Deep Link hinzu.
  2. Deaktivieren Sie einfach die Flusenwarnung. Manchmal wird die App nicht in Google Play veröffentlicht, sodass keine Deep Links benötigt werden usw.:

    android {
    defaultConfig {
    // something
    }
    lintOptions {
    disable 'GoogleAppIndexingWarning'
    baseline file("lint-baseline.xml")
    }
    }
    
zkvarz
quelle
19

Sie können , indem Sie den folgenden Code in die Warnung entfernen <intent-filter>innen<activity>

        <action android:name="android.intent.action.VIEW" />
Bibin Johny
quelle
7

Wenn Sie diese Warnung deaktivieren möchten, bis Ihre Anwendungsentwicklung abgeschlossen ist, oder wenn Sie keine Web-URL zum Hinzufügen haben, fügen Sie diese Zeile in Ihre AndroidManifest.xmlDatei ein.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          package="com.example.yourappname">

   <application
       ...
       ...
       tools:ignore="GoogleAppIndexingWarning">

          ....

   </application>

</manifest>
Shashanth
quelle