Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

debug javascript in android emulator with phonegap

I am new to phonegap and android development. May I know how can I debug javascript error on the emulator? I have heard about ADB may I know how can I use and install it on windows 7 system? I have an ajax called with jsonp but no response on emulator. However, I can call that ajax with browser on windows. May I know what went wrong?

like image 973
davidlee Avatar asked Jan 13 '11 18:01

davidlee


4 Answers

Update Nov 2016: looks like this doesn't work anymore.

The easiest and one of the most powerful ways is using http://debug.phonegap.com (it uses Weinre in the background, if you care). You just

  1. pick a random string, say r4nd0m,
  2. inject <script src="http://debug.phonegap.com/target/target-script-min.js#r4nd0m"></script> into your index.html
  3. visit http://debug.phonegap.com/client/#r4nd0m and you will instantly be debugging your mobile web app.

Things you can do (similar to Firebug or Web Inspector):

  1. Viewing and changing the DOM
  2. Editing CSS
  3. Console for live debugging and running Javascript remotely.
  4. Other stuff, like: storage, resources, timeline, profile, etc.
like image 162
duality_ Avatar answered Oct 04 '22 15:10

duality_


You could at least log debug stuff to the adb console by calling console.log() in JavaScript. Maybe that would suffice?

To view log output using adb, navigate to your SDK platform-tools/ directory and execute:

adb logcat

See logcat Command-line Tool

like image 30
Stefan H Singer Avatar answered Oct 04 '22 13:10

Stefan H Singer


You can now use Chrome dev tools to remotely debug Android Phonegap apps! I wrote up instructions here: Remote debugging Phonegap apps with Chrome Dev Tools

Steps for Android emulator:

  1. Navigate to chrome://inspect/ in Google Chrome on your desktop computer.
  2. Locate Android emulator on Devices tab and click 'inspect' link

Google Chrome remote target

See also Get Started with Remote Debugging Android Devices

like image 20
jackocnr Avatar answered Oct 04 '22 13:10

jackocnr


I'd recommend jsconsole. It lets you inject any JavaScript into the page and provides a basic console. There's a nice tutorial on remote debugging.

like image 42
dave1010 Avatar answered Oct 04 '22 14:10

dave1010