7

PHP と MySQL を使用して OS 10.5.8 サーバーですべてのサイトを開発し、そのマシンの任意のブラウザーで自分のサイトを表示するよう/etc/hostshttpd.confファイルを構成しました。example.dev

最近、Android のソフトウェア開発キットをインストールして、モバイル Webkit 向けのスタイルシートを開発およびテストするために使用したいと考えていますが、Android ブラウザーでローカルにホストされているプロジェクトにアクセスできません。

Android OS 全体をエミュレートしているので、これは理にかなっていますが、回避策はありますか? それとも、実際のコンピューター インターネット上のどこかに存在するプロジェクトのみをテストすることはできますか?

ファイルを編集するよう提案され/etc/resolv.confましたが、ローカルでホストされているドメインをフォーマットする正しい方法がわかりませんresolv.conf-- 次のバリエーションを試しましたが、何も機能しません:

domain example.dev
nameserver 127.0.0.1

または...

domain example.dev
nameserver localhost

私のホストファイルでは、次のように設定されています。

127.0.0.1   localhost example.dev example2.dev [etc]
4

5 に答える 5

13

AndroidエミュレーターからのURLでMacのIPアドレスを使用でき、その方法でサイトにアクセスできるはずです。もちろん、[システム環境設定]の[共有]で[Web共有]がオンになっていること、およびファイアウォールがアドレスをブロックしていないことを確認してください。

または、仮想ホストのIPアドレス(10.0.2.2)を使用することもできます。これは、エミュレーターの実行時に常にホストMacにマップされます。

何らかの理由でURLにIPアドレスを使用したくない場合は、エミュレーターで/ etc / hostsを変更することにより、MacのIPアドレスを任意の名前にマップできます。これを行うには、最初にファイルシステムを読み取り/書き込みにし、次にMacのIPと任意のホスト名を/ etc/hostsに追加する必要があります。

adb -e shell
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
# echo '10.0.2.2      cat-yodeling.local' >> /etc/hosts

次に、ブラウザから「 http://cat-yodeling.local 」にアクセスします。あなたは行ってもいいはずです。

于 2009-08-24T18:36:05.007 に答える
7

私はこれと同じ問題を抱えていました。@emmbyのソリューションは、私が必要としていたことを正確に実行するように聞こえましたが、奇妙なことに、機能していないようでした。コマンドは実行されましたが、後でhostsファイルを見ると、実際には更新されていないことがわかりました。

しかし、私はもう少し調査を行い、問題が何であるかを解明しました。

私が抱えていた主な問題は、エミュレートされたデバイスのオペレーティングシステムがすでに使用可能なストレージの100%を占めていたため、編集がhostsファイルに書き込まれていなかったことです。ただし、エラーメッセージも表示されませんでした。

@emmbyでこの問題が発生しなかった理由は、エミュレータに搭載したAndroidのバージョンによって問題が異なるためだと思います。一部のバージョンでは、作業用の空き領域が提供される場合があります。

この問題が発生した場合の解決策は、より多くのストレージでエミュレーターを起動することです。これは、次のよう-partition-sizeに、コマンドの引数を使用して実行できます。emulator

emulator -partition-size 128 @MyEmulatedDevice

その後、adb -e shellコマンドを使用して、@emmbyの回答に従ってファイルを編集できます。

ただし、シェルからファイルを編集するのが面倒adbな場合は、エミュレータからホストOSにファイルをコピーし、ローカルで編集して、再度コピーする機能も提供されます。また、再マウントも扱います。あなたはこのようにそれをするでしょう:

adb pull /system/etc/hosts C:\wherever\you\want\to\save\it

次に、お気に入りのエディターで編集します。

次に、エミュレーターを読み取り/書き込みモードに再マウントし、ファイルをコピーして戻します。

adb remount
adb push C:\wherever\you\saved\hosts /system/etc/hosts

adb pullエミュレータを再起動するたびにエミュレータがデフォルト状態にリセットされるため、編集したファイルをローカルに保持できるため、毎回編集手順を繰り返す必要がないため、これがより良い解決策になる可能性があることに注意してください。エミュレーターを起動し、remountとを実行するだけpushで、ビジネスを開始できます。

お役に立てば幸いです。

于 2011-07-15T12:04:28.690 に答える
2

Android ドキュメントに従って、ホスト ループバック インターフェイスの特別なエイリアスであるエミュレータで 10.0.2.2 を使用して、システム 127.0.0.1 IP にアクセスできます。

于 2012-04-25T14:24:13.467 に答える
2

ローカルネットワークでコンピューターのIPアドレスを使用して、同様の問題を回避しました。

于 2009-08-24T04:34:07.970 に答える
2

次の 2 つのリンクの指示に従います。

http://www.codingonstilts.com/2012/04/android-emulator-hosts-file-entry.html (IP アドレスとホスト名の間のタブと、ファイルの下部にある改行に注意してください) )「[SDKLOCATION]/platform-tools/adb pull /system/etc/hosts WHATEVERHOSTFILENAME」を実行して、最初に元のホストファイルの形式を確認し、それを使用して元に戻しました。

そして: http://www.codingonstilts.com/2012/06/sync-os-x-hosts-file-to-android.html

私のために働きます-頑張ってください!!

于 2012-10-13T08:06:18.237 に答える