Is there a kind of Firebug or JavaScript console debug for Android?

JavascriptAndroidHtmlMobileAndroid Browser

Javascript Problem Overview


I'm developing a website for mobile. It works on Firefox desktop. It works on iPhone, but when I press a buton on Android 2.x (and maybe lower). my JavaScript code crashes or what else...

Can I get access to the logger or JavaScript console for those devices?

The better should be a kind of Firebug application.

Javascript Solutions


Solution 1 - Javascript

One option is weinre. It provides DOM & Style editing along with the console. If you don't want to set it up yourself, there is an instance hosted at http://debug.phonegap.com

The other option is JSHybugger. It's certainly the most complete debugging environment available for android browser. It's a paid product, but probably worth it.

Solution 2 - Javascript

Chrome has a very nice feature called 'USB Web debugging' which allows to see the mobile device's debug console on your PC when connected via USB.

See here for more details.

EDIT: Seems that the ADB is not supported on Windows 8, but this link seems to provide a solution:

http://mikemurko.com/general/chrome-remote-debugging-nexus-7-on-windows-8/

Solution 3 - Javascript

You can type about:debug in some of the mobile browsers to pull up a JavaScript console.

Solution 4 - Javascript

I sometimes print debugging output to the browser window. Using jQuery, you could send output messages to a display area on your page:

<div id='display'></div>

$('#display').text('array length: ' + myArray.length);

Or if you want to watch JavaScript variables without adding a display area to your page:

function debug(txt) {
    $('body').append("<div style='width:300px;background:orange;padding:3px;font-size:13px'>" + txt + "</div>");
}

Solution 5 - Javascript

I had http://www.technomancy.org/android/javascript-debugging/">the same problem, just use console.log(...) (like firebug), and the install a log viewer application, this will allow you to view all the logs for your browser.

Solution 6 - Javascript

We are following the below steps in our project for debugging a website on mobile.

  1. Install mobogenie software on mobile and desktop (both have the same version).
  2. Open your site in mobile Google Chrome browser.
  3. Open Google Chrome on desktop. Go to Option --> More Options --> Inspect Device.
  4. Here you find a list of sites which are open on mobile and click on inspect and you get the JavaScript console which you want.

Solution 7 - Javascript

"USB Web debugging" is one option

"printing it on the screen" another.

But I prefer remote debugging through 'adobe edge inspect' formally known as adobe shadow. It uses weinre internally (=WEb INspect REmote)

You just install it + a small plugin in the browser (Chrome) and a free app you can download in the play-store. Then you have all the tools like the Chrome Development tools.

It has also support for iOS and Kindle Fire

Update

Like Chris noticed, you have to pay a subscription to use edge inspect. A cheap alternative is to use weinre directly, it's the base of edge inspect. Here's an article about how to set it up.

Solution 8 - Javascript

If you're using Cordova 3.3 or higher and your device is running Android 4.4 or higher you can use 'Remote Debugging on Android with Chrome'. Full instructions are here:

https://developer.chrome.com/devtools/docs/remote-debugging

In summary:

  • Plug the device into your desktop computer using a USB cable
  • Enable USB debugging on your device (on my device this is under Settings > More > Developer options > USB debugging)

Or, if you're using Cordova 3.3+ and don't have a physical device with 4.4, you can use an emulator that uses Android 4.4+ to run the application through the emulator, on your desktop computer.

  • Run your Cordova application on the device or emulator
  • In Chrome on your desktop computer, enter chrome://inspect/#devices in the address bar
  • Your device/emulator will be displayed along with any other recognised devices that are connected to your computer, and under your device there will be details of the Cordova 'WebView' (basically your Cordova app), which is running on the device/emulator (the way Cordova works is that it basically creates a 'browser' window on your device/emulator, within which there is a 'WebView' which is your running HTML/JavaScript app)
  • Click the 'inspect' link under the 'WebView' section where you see your device/emulator listed. This brings up the Chrome developer tools that now allow you to debug your application.
  • Select the 'sources' tab of the Chrome developer tools to view JavaScript that your Cordova app on the device/emulator is currently running. You can add breakpoints in the JavaScript that allow you to debug your code.
  • Also, you can use the 'console' tab to view any errors (which will be shown in red), or at the bottom of the console you'll see a '>' prompt. Here you can type in any variables or objects (e.g. DOM objects) that you want to inspect the current value of, and the value will be displayed.

Solution 9 - Javascript

You can try YConsole a js embedded console. It is lightweight and simple to use.

  • Catch logs and errors.
  • Object editor.

How to use :

<script type="text/javascript" src="js/YConsole-compiled.js"></script>
<script type="text/javascript" >YConsole.show();</script>

Solution 10 - Javascript

I installed console add-on of the firefox (https://addons.mozilla.org/en-US/android/addon/console/) on my firefox browser on android and it worked quite well. Helped me debug my angular2 app.

Solution 11 - Javascript

I also looked for a simple console replacement, just to dump text. So what I did was this function:

function remoteLog (arg) {
    var file = '/files/remoteLog.php';
    $.post(file, {text: arg});
}

The remote PHP file recorded all the output to a database in arg. It took me 5 minutes (OK, on the server side I used a simple logging library that records and displays text messages, but still...).

Solution 12 - Javascript

If you don't mind forwarding through a 3rd party server, JSConsole is a rather useful remote debugger for JavaScript.

Solution 13 - Javascript

On 2013-12-03 Google launched Chrome DevTools for Mobile, which lets developers remote debug mobile web applications via emulation and screen-casting with Zero Configuration.

For all features, checkout Paul Irish's talk on YouTube.

Solution 14 - Javascript

I have recently written a tool for showing console logs in a movable/resizable "window" (actually a div). It provides similar functionality to Firebug's console but you can see it over your page on a tablet. Tablet/Smartphone/Phablet Debug Console

Solution 15 - Javascript

Try js-mobile-console

MobileConsole can be embedded within any page for debugging. It will catch errors and behave exactly as the native JavaScript console in the browser. It also outputs all the logs you've written via an API of window.console.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionChristophe DeboveView Question on Stackoverflow
Solution 1 - JavascriptPaul BeusterienView Answer on Stackoverflow
Solution 2 - JavascriptseegView Answer on Stackoverflow
Solution 3 - JavascriptNSjonasView Answer on Stackoverflow
Solution 4 - JavascriptmbokilView Answer on Stackoverflow
Solution 5 - JavascriptAmandasaurusView Answer on Stackoverflow
Solution 6 - JavascriptchiragView Answer on Stackoverflow
Solution 7 - JavascriptVDPView Answer on Stackoverflow
Solution 8 - JavascriptChris HalcrowView Answer on Stackoverflow
Solution 9 - JavascriptyorgView Answer on Stackoverflow
Solution 10 - JavascriptSacky SanView Answer on Stackoverflow
Solution 11 - JavascriptMoshe ShahamView Answer on Stackoverflow
Solution 12 - JavascriptmervView Answer on Stackoverflow
Solution 13 - JavascriptFarmView Answer on Stackoverflow
Solution 14 - JavascriptGus T ButtView Answer on Stackoverflow
Solution 15 - JavascriptstevemaoView Answer on Stackoverflow