So verbinden Sie den Android Emulator mit dem Internet


272

Wie kann ich meinen Android-Emulator mit dem Internet verbinden, z. B. um den Browser zu verwenden? Ich habe viele Ratschläge gefunden, wie Sie vorgehen müssen, wenn Sie über einen Proxy verbunden sind. Dies ist hier jedoch nicht der Fall. Mein Computer (Windows 7) ist direkt mit dem Router verbunden.


1
Ich hatte die DNS-Einstellungen meines Netzwerkadapters manuell auf meinen Router unter 192.168.1.1 eingestellt, aber als ich sie auf automatisch änderte, funktionierte es.
rwilson04

Ich hatte dieses Problem, als ich den Emulator startete, bevor ich das WLAN auf meinem Computer einschaltete. Die Lösung bestand darin, das WLAN an meinem Co-Außengerät einzuschalten und dann den Emulator zu stoppen / zu starten.
Ban-Geoengineering


Antworten:


289

Ich denke, einige der Antworten haben dies möglicherweise angesprochen, jedoch schräg, aber hier ist, was für mich funktioniert hat.

Angenommen, Ihr Problem tritt auf, wenn Sie sich in einem drahtlosen Netzwerk befinden und eine LAN-Karte installiert ist, besteht das Problem darin, dass der Emulator versucht, seine DNS-Einstellungen von dieser LAN-Karte abzurufen. Kein Problem, wenn Sie über dieses LAN verbunden sind, aber völlig nutzlos, wenn Sie eine drahtlose Verbindung haben. Ich habe das bemerkt, als ich auf meinem Laptop war.

Also, wie zu beheben? Einfach: Deaktivieren Sie Ihre LAN-Karte. Ja wirklich. Gehen Sie einfach zu Ihren Netzwerkverbindungen, suchen Sie Ihre LAN-Karte, klicken Sie mit der rechten Maustaste darauf und wählen Sie Deaktivieren. Probieren Sie jetzt Ihren Emulator aus. Wenn du wie ich bist, funktioniert es plötzlich ...!


2
Ja, das war mein Szenario. Ich verwende Wireless unter Win7, also habe ich den Emulator geschlossen, meine LAN-Karte deaktiviert und den Emulator erneut gestartet, und es hat funktioniert.
Mina Samy

2
Tatsächlich nimmt der Emulator den Adapter mit der höchsten Priorität, daher sollte das Umschalten der Priorität Ihrer Adapter (drahtlos als höchste) ebenfalls funktionieren und Sie müssen den LAN-Adapter nicht vollständig deaktivieren. Vielen Dank für Ihre Antwort, ersparte mir Kopfschmerzen
thomaux

1
@Anzeo: und wie änderst du die Reihenfolge unter Windows?
Martin

1
Überprüfen Sie Ihre Firewall-Einstellungen - wie @ moon_walker333 in diesem Thread erwähnt. AVG hat meine Anwendung blockiert.
ccbunney

1
Vielen Dank - ich habe stundenlang versucht, das Problem zu beheben, und konnte es endlich zum Laufen bringen, nachdem ich meine Netzwerkkarte deaktiviert hatte. Zu Ihrer
Information

84

Wenn Sie auf einem Mac sind - versuchen Sie dies -

  1. Gehe zu Apple-Symbol -> Systemeinstellungen -> Netzwerk
  2. Klicken Sie auf das Zahnradsymbol auf und wählen Sie "Serviceauftrag festlegen".
  3. Bringen Sie die aktive Schnittstelle vor die andere Schnittstelle.
  4. Starten Sie den Android Emulator neu.

4
+1: Dies ist definitiv die hilfreichste Antwort für Mac-Benutzer.
Sherb

5
Was bedeutet Schritt 3? Ich habe mein virtuelles Gerät unter Wi-Fi gebracht und mein Computer hat sich selbst heruntergefahren.
Iammesol

3
@Iammesol, ich glaube, Schritt 3 bedeutet, dass Sie Ihren aktiven Verbindungsnamen (z. B. WLAN / Ethernet) nach oben ziehen. Zumindest hat es bei mir funktioniert.
Himel Nag Rana

62

Hier ist eine Antwort für Entwickler, die Android Studio verwenden .

Betriebssystem: Mac OS X El Capitan

IDE: Android Studio 2.2

Aus bestimmten Gründen konnte ich bei der Arbeit nicht über meine AVD auf das Internet zugreifen (wahrscheinlich Probleme mit der Proxy- oder Netzwerkkonfiguration). Was für mich der Trick war, war, meine AVD in der Befehlszeile zu starten und manuell das öffentliche DNS 8.8.8.8 von Google zu geben.

Gehen Sie in Ihrem Terminal zu den Ordner-Tools Ihres Android SDK, um das 'Emulator'-Programm zu finden:

cd ~/Library/Android/sdk/tools

Rufen Sie dann den Namen Ihrer AVDs ab:

emulator -list-avds

Es wird Ihnen so etwas zurückgeben:

Android_Wear_Round_API_23
Nexus_10_API_22
Nexus_5X_API_22
Nexus_5X_API_24
Nexus_9_API_24

Starten Sie dann die gewünschte AVD mit den folgenden Anweisungen:

emulator -avd NameOfYourDevice -dns-server 8.8.8.8

Ihre AVD wird gestartet und Sie sollten das Internet nutzen können.


Dies hat bei mir funktioniert, weil mein Mac die DNS-Einstellung verloren hat. Nicht die Schuld des Emulators. Diese DNS-Einstellung wird vom Mac abgerufen. Aber dieser Beitrag hat mir geholfen, es herauszufinden.
Ezaspi

Ich habe ein einfaches Skript erstellt, um genau das zu tun. Sie können es unter folgender Adresse
Brotoo25

57

Meine Plattform: Mac OS 10.6.4 Eclipse: 3.6

Ich hatte ein ähnliches Problem, bei dem mein Karten-App-Hintergrund grau war (keine Kacheln) und der Browser keine Verbindung zum Internet herstellen konnte.

In Eclipse ging ich zu Run Configurations -> Target und fügte " -dns-server X.X.X.X" hinzu und danach funktionierte alles einwandfrei. (war offensichtlich X.X.X.Xdie IP-Adresse für meinen DNS-Server).


6
Ich habe "-dns-server XXXX" zum Feld "Zusätzliche Emulator-Befehlszeilenoptionen" hinzugefügt.
Jeremy Kie

5
+1 Das hat bei mir funktioniert. Ich hatte Probleme in einem LAN. Ich habe gerade das öffentliche DNIS 8.8.8.8 hinzugefügt und es hat es gelöst! Vielen Dank!
J. Hendrix

Genial, in meinem Fall hat es auf dem DNS-Server nicht aufgenommen, weil wir 10.0.0.0-255 als unser Subnetz verwenden, musste -dns-Server 10.0.0.1 (auch Windows 7)
Thomas Dignan

3
genial danke. Wenn Sie (wie ich!) Das Feld "Zusätzliche Emulator-Befehlszeilenoptionen" nicht finden konnten, ziehen Sie den unteren Rand des Fensters "Ziel" nach unten. Dieses Feld wurde für mich ohne Feedback ausgeblendet, was darauf hindeutet!
Chris Knight

Das verwendete DNS 8.8.8.8 von Google und der gleiche Ansatz funktionierten auch für mich unter Ubuntu 12.04, Eclipse Juno.
pm_labs

25

Um das Internet über einen Proxy auf dem Emulator zu nutzen, versuchen Sie diese Schritte: Es hat bei mir funktioniert:

Gehen Sie zu Einstellungen-> Drahtlos & Netzwerke-> Mobilfunknetze-> Zugangspunktnamen. Drücken Sie die Menütaste. Ein Optionsmenü wird angezeigt.

Wählen Sie im Optionsmenü die Option Neuer APN.

Klicken Sie auf Name. Geben Sie den Namen für apn say My APN an.

Klicken Sie auf APN. Geben Sie www ein.

Klicken Sie auf Proxy. Geben Sie die IP Ihres Proxyservers ein. Sie können es über das Internet-Optionsmenü des Internet Explorers herunterladen.

Klicken Sie auf Port. Geben Sie die Portnummer ein, in meinem Fall 8080. Sie können sie über das Internetoptionsmenü des Internet Explorers abrufen.

Klicken Sie auf Benutzername. Geben Sie den Benutzernamen im Format Domäne \ Benutzername an. Im Allgemeinen ist es Ihr System-Login.

Klicken Sie auf Passwort. Geben Sie Ihr Systemkennwort ein.

Drücken Sie erneut die Menütaste. Ein Optionsmenü wird angezeigt.

Klicken Sie auf Speichern und versuchen Sie, Ihren Browser zu öffnen. Ich denke es hat dir geholfen?


Ich habe es versucht, aber es gibt Es gab einen Netzwerkfehler. Sogar mein System-Internet funktioniert
einwandfrei

3
Es ist noch einfacher, wenn ein lokaler Proxy ausgeführt wird, der den Datenverkehr an den "offiziellen" Proxy weiterleitet, der eine Authentifizierung benötigt. Verwenden 10.0.2.2Sie in diesem Fall die IP-Adresse Ihres Proxys (Ihren Host-Computer) und konfigurieren Sie den äußeren Proxy (z. B. SquidMan ) nach Ihren Wünschen.
Thomas Keller

funktioniert bei mir nicht ..Was soll man für VPN eingeben?
Developer Desk

17
  1. Klicken Sie mit der rechten Maustaste auf das Projekt in Eclipse
  2. Wählen Sie Ausführen als -> Konfigurationen ausführen ...
  3. Wählen Sie die Android-Anwendung und dann die Registerkarte "Ziel"
  4. Suchen Sie nach "Zusätzliche Emulator-Befehlszeilenoptionen" und fügen Sie diese Befehlszeile in das Textfeld ein

    -http-proxy http: // <Benutzername>: <Kennwort> @ <Hostname>: <Port>


12

Für dieses Problem gibt es verschiedene Lösungen. Eines davon zeige ich Ihnen über mein Experiment und die Ergebnisse, die mit den Ergebnissen eines kürzlich heruntergeladenen Android-Studios und AVD-Bildern aus dem Jahr 2017 erzielt wurden.

  1. Als erstes müssen Sie Ihre AVD von Android Studio aus starten. (In meinem Fall wähle ich NEXUSAPI25 Android 7.1 Bild)

  2. Gehe zu Einstellungen -> Wirless und Networking -> Cellular Network -> Access Points -> (+) drücken Add -> geben Sie die folgenden Punkte, wenn Sie NTLM - Proxy oder Proxy überhaupt nicht haben (das heißt , Sie direkt verbunden sind)

    ein. apn-Namen als myAPN hinzufügen b. apn server hinzufügen => www c. Speichern Sie und versuchen Sie, im Internet zu surfen.

Wenn dies nicht funktioniert, fügen Sie 'ANDROID_SDK_ROOT' in Ihre Umgebungsvariable ein

Starten Sie dann AVD mit dem Befehl emulator wie folgt

emulator -avd Nexus25 -dns-server 8.8.8.8
  1. Für diejenigen, die NTLM-Proxys verwenden, werde ich Ihnen als nächstes zeigen, wie es für mich funktioniert.

  2. Fügen Sie Ihren Android_sdk_root-Pfad zu Ihrer Umgebungsvariablen hinzu. Dadurch wird der Befehlszeilencode wie bei der Verwendung von AVD-Namen usw. erfolgreich gelesen.

  3. Starten Sie Ihren Emaulator mit dem folgenden Befehl

> Emulator -avd Nexus_5X_API_25 -http-Proxy http: // Benutzername: Passwort @ IP-Adresse: Port

EINGEBEN

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


1
-dns-serverIch habe es gelöst. Gibt es eine Möglichkeit, dies in der Benutzeroberfläche festzulegen?
serv-inc

11

Haben Sie versucht, den Emulator mit Administratorrechten zu starten ? Es hat bei mir funktioniert, ich verwende Windows 7 64bit)


Ich verwende auch Windows 7 64bit. Ich habe versucht, Eclipse als Administrator und AVD Manager als Administrator zu starten, und beides hat nicht funktioniert. Muss ich es irgendwie als Administrator über die Kommandozeile starten?
Danny

Ich bin auf dasselbe Problem gestoßen und habe mit Administratorrechten mein Problem unter Windows 10 gelöst.
Abdul Mannan

10

In meinem Fall musste ich nur das virtuelle Android-Gerät (AVD) über das "Android SDK und den AVD-Manager" starten, und es funktionierte


1
Ja, das hat bei mir funktioniert. Ich habe gerade die App ausgeführt und mich dazu veranlasst, die AVD zu starten ...
Swapnil Kale

10

Wenn Sie sich im SDK-Manager hinter einem Proxy befinden Tools -> Options, konfigurieren Sie unter NICHT die Proxy-Einstellungen. Wenn Sie über die Befehlszeile ausführen, fügen Sie Folgendes hinzu -http-proxy:

emulator.exe -avd YOUR_AVD_NAME_HERE -http-proxy PROXY:PORT

Hat für mich gearbeitet.


Dies ist die einzige Lösung, die für mich funktioniert hat. Beachten Sie, dass Sie beim Deaktivieren der Proxy-Konfiguration in den SDK Manager-Einstellungen nicht auf SDK-Updates zugreifen können. Daher müssen Sie die Proxy-Einstellungen beim Erstellen Ihrer Anwendung erneut aktivieren.
AlanKley

Gibt es eine Konfigurationsdatei, die die Proxy-Konfiguration speichert, damit wir sie über den AVD-Manager ausführen können? nicht von der Eingabeaufforderung?
Projo

8

Ich habe dieses Problem beim ersten Ausführen des Simulators festgestellt. Ich habe es gelöst, indem ich den DNS-Server mit eingestellt habe

Library/Android/sdk/platform-tools/adb shell getprop net.dns1

Holen Sie sich den aktuellen DNS-Server des Simulators 10.0.2.3

Stellen Sie es dann auf meinen LAN-DNS-Server ein

Library/Android/sdk/platform-tools/adb shell setprop net.dns1 192.168.1.1

Arbeitete auf Android 25. Diese Antwort sollte akzeptiert werden!
James Yang

7

Ich hatte auch das gleiche Problem. Die einfachste Lösung, die ich herausgefunden habe, ist:

  • Wechseln Sie in Ihren Ordner Android \ Sdk \ emulator und öffnen Sie die Eingabeaufforderung.
  • Geben Sie ein emulator -list-avds, um die verfügbaren Emulatornamen anzuzeigen.
  • Geben Sie emulator -avd name-of-your-device -netdelay none -netspeed full -dns-server 8.8.8.8command ein und drücken Sie die Eingabetaste.

6

Ich hatte ein ähnliches Problem. Ich habe eine Anwendung installiert, für die eine INTERNET-Berechtigung erforderlich war (und die verwendet wurde), und plötzlich hat sie funktioniert.

Leute, prüft auch, ob ihr nicht irgendwo über ein VPN verbunden seid, da dies auch die Internetverbindung stören kann.

Blacharnia


6

In Eclipse gehen Sie zu DDMS

unter DDMS wählen Emulator Steuerung , die enthält Telefonie - Status in Telefoniestatus enthalten Daten -> wählen Sie Start , wird dies Ihre Internet - Verbindung aktivieren, wenn Sie dann deaktivieren Internetverbindung für Emulator wollen ---> select Keine

(Hinweis: Dies aktiviert Internetverbindungen nur, wenn Ihr PC / Laptop, auf dem Sie Ihre Eclipse ausführen, über aktive Internetverbindungen verfügt.)


4

Nachdem ich dies gelesen hatte, beschloss ich, mir meine "NICs" anzusehen. Ich habe dies in Anführungszeichen gesetzt, weil ich wie viele andere virtuelle Nics für Geräte wie Hamachi und Virtual Box verwende. Nachdem ich Hamachi deaktiviert habe, kann ich das Internet nutzen. Ich vermute, dass der Emulator das erste verfügbare Nic auswählt, unabhängig davon, ob es virtuell ist. Nun, um herauszufinden, ob ich meine Bestellung neu ordnen kann, ohne meine Schachtel abzureißen.

Windows 7 32bit


4

Meine Einstellungen für Serviceaufträge waren korrekt (WLAN war das erste), konnten jedoch immer noch keine Verbindung herstellen.

Die Antwort war, die Thunderbolt Bridge auszuschalten:

Systemeinstellungen> Netzwerk> Thunderbolt Bridge

Aktivieren Sie dann IPv4 konfigurieren und übernehmen Sie Ihre Änderungen.

Sie müssen nicht mit Access Points im Emulator herumschrauben.


Hier gilt das gleiche. Ich musste alle Dienste auf "IPv4 konfigurieren: aus" einstellen und nur WiFi aktiviert lassen. Nur den Serviceauftrag zu verschieben schien nicht genug zu sein. Catalina 10.15.4.
Oliver Metz

3

Danke für die Hinweise. Sie haben wirklich geholfen. Das Wort "Firewall" kam mir in den Sinn.

Ich habe einen Windows XP-Computer mit WIFI-Verbindung und ohne Proxy. Auf meinem Computer mit einer Smart Firewall wird Norton Internet Security ausgeführt. Diese Smart Firewall verwaltet den Zugriff von Programmen auf das Netzwerk, einschließlich emulator.exe. Ich ging zu Einstellungen -> Programmsteuerung und gewährte dann vollen Zugriff auf emulator.exe. Danach startete ich Android Emulator und knallte ... Ich konnte mich mit dem Internet verbinden.

Hoffe das hilft neuen Leuten.

~ Schlaff


Ja - Firewall war mein Problem (AVG). Gute Stelle!
ccbunney

Ich hatte das gleiche Problem mit Kaspersky!
Behrouz.M

2

Wenn Sie unter MacOS mit 2.2 arbeiten und immer wieder ein Fehler bezüglich der Datenkonnektivität auftritt, versuchen Sie Folgendes, es funktioniert.

  • Ich habe alle Netzwerkschnittstellen über Sys Prefs außer LAN entfernt
  • Obwohl mein DNS von DHCP bereitgestellt wird, habe ich DNS mit nur einem Server erneut eingegeben
  • Ich habe -http-proxy in der Befehlszeile verwendet, um einen anzugeben

Es beginnt im Büro zu arbeiten. Puh.


2

Ich habe das Problem gelöst, indem ich alle Netzwerkverbindungen außer der von mir verwendeten WLAN-Verbindung deaktiviert und dann die Eigenschaften dieser verbleibenden aktivierten Verbindung so festgelegt habe, dass statisch DNS-Adressen zugewiesen wurden. (kein DHCP) Dies war auf Win7 64bit


2

Ich denke manchmal ist es einfach genug, das virtuelle Gerät einfach neu zu starten. :-)


2

Ich hatte das gleiche Problem auf meinem virtuellen Windows 7.

  1. Gehen Sie zu Netzwerkverbindungen
  2. Alt> Erweitert> Erweiterte Einstellungen ...
  3. In der zweiten Registerkarte bringen Sie die Internet-Netzwerkschnittstelle oben

hoffe es ist hilfreich dank


2

Im Android-Emulator funktionierte das Ein- und Ausschalten des Flugzeugmodus für mich.


1

Ja - in Win 7 starten Sie den Emulator mit Administratorrechten und alles wird gut - oder zumindest werden Sie das WLAN in Android zum Laufen bringen.


1

Ich hatte ein ähnliches Problem mit Win7 64 Bit. Ich habe versucht, meine Hamachi und Virtualbox Adapter zu deaktivieren und habe nicht funktioniert. Versucht, avd als Administrator zu starten und hat nicht funktioniert. Am Ende habe ich den Teredo-Tunneling-Adapter mithilfe der Informationen auf dieser Website deaktiviert und es hat funktioniert: http://www.mydigitallife.info/2007/09/09/how-to-disable-tcpipv6-teredo-tunneling-in-vista /.


Nachdem es anfing zu arbeiten, hörte es wieder auf. ipconfig zeigte, dass ein neuer Microsoft-Adapter namens isatap aufgetaucht war. Also ging ich zu Geräte-Manager> Netzwerkadapter> Versteckte Geräte anzeigen und deaktivierte die 3 Isatap-Adapter und dann fing es wieder an zu funktionieren.
Martin Bayly

1

Ich habe festgestellt, dass das Starten des Emulators mit aktiviertem Kontrollkästchen "Benutzerdaten löschen" dieses Problem für mich behoben hat, nachdem ich meinen Entwicklungscomputer von Vista x64 auf Win7 x64 neu erstellt habe.


1

Es scheint, dass es einige Gründe gibt, warum es möglicherweise keine Internetverbindung für einen Emulator gibt. In meinem Fall habe ich von zu Hause aus gearbeitet, wo ich eine drahtlose Verbindung habe. Dann bin ich ins Büro gekommen und habe mich direkt angeschlossen, obwohl meine drahtlose Verbindung getrennt wurde Es wurde nicht deaktiviert, was zu keiner Emulatorverbindung führte. Ich verstehe, dass beim Start nach einem Netzwerkadapter gesucht wird. Wenn hier ein Konflikt auftritt, kann dies zu keiner Internetverbindung führen. Zum Auflösen gehen Sie zu Start> Einstellungen> Netzwerkverbindungen, klicken Sie mit der rechten Maustaste auf Drahtlose Netzwerkverbindung (wenn Sie keine drahtlose Verbindung verwenden) und wählen Sie Deaktivieren


1

Ich benutze keinen Proxy ... aber ich benutze ein Skript ... Gibt es sowieso etwas in der Nähe. Ich bin hinter einer Firmenfirewall


Haben Sie eine Lösung gefunden?
Ahamed

0

Ich bin mir nicht sicher, ob dies Ihr Problem ist, aber hier ist, wie ich mein Problem behoben habe.

Ich hatte immer den Fehler "Keine DNS-Server gefunden" beim Starten des Emulators und habe viel bei Google recherchiert, ohne Erfolg. Wie auch immer, ich habe irgendwo einen Beitrag gefunden (kann ihn nicht mehr finden), der besagt, dass die Anzahl der Netzwerkkarten und die Anzahl der DNS-Einträge den Emulator beeinflussen können. Da ich wusste, dass der Emulator eine Windows-API-Funktion (GetNetworkParams ()) zum Auflösen von DNS-Einträgen verwendet, konnte ich mich nicht auf die Datei% WINDOWS% \ System32 \ Hosts verlassen.

Ich habe jedoch in den Eigenschaften der Netzwerkkarten (unter Windows 7) festgestellt, dass ich eine statische IP-Adresse, aber keine DNS-Einträge angegeben habe. Also habe ich die DNS-Einträge von meinem Router erhalten und sie in die NICs-Eigenschaft eingefügt. Ich habe den Emulator neu gestartet und er verwendet jetzt die richtigen DNS-Einträge!

Ich kann jetzt meine Internetverbindung mit dem Emulator nutzen und es wirkt Wunder!

Ich hoffe es hilft!


0

Ich dachte, ich hätte Probleme beim Verbinden meines Emulators mit dem Internet, aber es stellte sich heraus, dass es Probleme mit dem von mir verwendeten Code gab. Ich weiß, dass es offensichtlich ist, aber versuchen Sie zunächst den Browser auf dem Emulator, um zu bestätigen, dass Sie keinen Internetzugang haben. Ich hätte eine Stunde gespart, wenn ich das zuerst getan hätte.


0

Ich habe Mac OS X 10.7.2, Eclipse Helios Service Release 2. Ich arbeite auch über Proxy und meine IP-Einstellungen erfolgen über DHCP. Ich habe dieses Problem zuerst mit diesem Artikel gelöst http://www.gitshah.com/2011/02/android-fixing-no-internet-connection.htmlDann entfernte ich die Emulatoreinstellungen und ging einfach zu Ausführen-> Konfigurationen ausführen-> Ziel-> Zusätzliche Emulator-Befehlszeilenoptionen und gab dort -http-proxy xxx.xx.111.1: 3128 ein. Außerdem möchte ich sagen, dass es nicht funktioniert hat, als ich auch ein DNS wie dieses eingegeben habe: -dns-server xxx.xx.111.1 -http-proxy xxx.xx.111.1: 3128, aber als ich DNS entfernt habe, hat es funktioniert. Außerdem möchte ich darauf hinweisen, dass zusätzliche Emulator-Befehlszeilenoptionen nicht sichtbar sind, ohne zum unteren Rand dieses Fensters zu scrollen. Ich möchte auch darauf hinweisen, dass beim Ändern der Emulatoroptionen alle Apps funktionieren. Wenn Sie jedoch zusätzliche Emulator-Befehlszeilenoptionen schreiben, müssen Sie diese jedes Mal für jedes App-Ziel in Run Configurations schreiben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.