2017-10-21 2 views
3

Fehler beim Ausführen der Instant App in Android Studio, wenn der Wert @string für den Hostnamen verwendet wird (Fehler "URL nicht im Manifest definiert") . Zum Beispiel:"URL nicht im Manifest definiert", wenn Instant App ausgeführt wird, die @string als Hostnamen verwendet

<data android:scheme="https" android:host="@string/SOME_DOMAIN" /> 

Dies funktioniert gut, wenn android:host auf rohen Domain-String festgelegt wird. Ich kann dies umgehen, indem ich diesen Wert auf bestimmte Domänenwerte beim Ausführen/Debuggen von AS, aber nicht ideal (immer Gefahr des Schiebens von Code, der die hart codierte Zeichenfolge enthält) setzen

Auch das funktioniert gut, wenn ich Build/deploy APKs Basis und Funktion von der Kommandozeile und Trigger so etwas wie adb shell am start -W -a android.intent.action.VIEW -d "<my url>"

+0

hatte versucht, das aber kein Glück .... sieht aus wie AS String hart codiert erfordert in ' android: host' –

+0

Beachten Sie, dass dies funktioniert, wenn ich Build/run von der Kommandozeile ..... es interpretiert "@ string/SOME_DOMAIN" ... Problem ist nur, wenn ich von AS laufen –

+2

Ich habe dies bei http abgelegt : //issuetracker.google.com/68084954 – dchai

Antwort

0

Vielleicht ist mit dieser, weil es

nicht der Haupt

Manifest.xml ist, aber die Debug-Manifest. . Hostnamen Matching im Android Framework ist case-sensitive, im Gegensatz zu dem formalen RFC:

Hinweis

app/src/main/Manifest Bearbeitung Versuchen. Daher sollten Sie Hostnamen immer in Kleinbuchstaben angeben.

Reference Android developer String Resources

0

Ich würde sagen, das ist eine fehlerhafte Verhalten, dass String-Ressourcen Arbeit in einigen Fällen dort. Gemäß der documentationandroid:host ist kein String-Ressource enthalten, nur eine einfache Zeichenfolge soll:

<data android:scheme="string" 
     android:host="string" 
     android:port="string" 
     android:path="string" 
     android:pathPattern="string" 
     android:pathPrefix="string" 
     android:mimeType="string" /> 

aktualisieren

Nach @dchai (die anscheinend arbeitet bei Google):

String-Ressourcen sollen unterstützt werden ... Dies ist ein Fehler in Android Studio.

Bis bug fixiert ist, je nach Bedarf, können Sie prüfen, mit manifest build variables statt Der Bug als auch manifest Build Variablen Nutzung verhindert.

+0

String-Ressourcen sollen unterstützt werden --- Developer Console wurde aktualisiert, um diesen Fall zu behandeln. Dies ist ein Fehler in Android Studio. – dchai

+0

@dchai whoa! Weißt du wann und wo es kommuniziert wurde? Wurde die Änderung als Teil des Rollouts der Konfiguration-APK vorgenommen? – Idolon

0

als Alternative können Sie verwenden manifestPlaceholders

<data android:scheme="https" android:host="${SOME_DOMAIN} /> 

in Ihnen build.gradle:

flavor { 
    dimension "instant" 
    manifestPlaceholders = [SOME_DOMAIN: "https://instantapp.example.com/"] 
} 
Verwandte Themen