在android模拟器调用JavaScript与phonegap

我是phonegap和android开发新手。 我可以知道如何在模拟器上debuggingjavascript错误吗? 我听说过亚行可能知道如何在Windows 7系统上使用和安装它? 我有一个jsonp调用ajax但没有模拟器上的响应。 不过,我可以在Windows上用浏览器调用ajax。 我可以知道哪里出了错?

通过在JavaScript中调用console.log(),您至less可以将debugging内容logging到adb控制台。 也许这就够了?

要使用adb查看日志输出,请导航到您的SDK platform-tools /目录并执行:

adb logcat 

请参阅logcat命令行工具

2016年11月更新:看起来像这不工作了。

最简单和最强大的方法之一是使用http://debug.phonegap.com (它使用Weinre在后台,如果你在意)。 你刚才

  1. 选一个随机的string,比如r4nd0m
  2. 在您的index.html注入<script src="http://debug.phonegap.com/target/target-script-min.js#r4nd0m"></script>
  3. 请访问http://debug.phonegap.com/client/#r4nd0m ,您将立即debugging您的移动Web应用程序。

你可以做的事情 (类似于Firebug或Web Inspector):

  1. 查看和更改DOM
  2. 编辑CSS
  3. 用于实时debugging并远程运行Javascript的控制台。
  4. 其他的东西,如:存储,资源,时间表,简介等

您现在可以使用Chrome开发工具远程debuggingAndroid Phonegap应用程序! 我在这里写下了说明: 使用Chrome开发工具远程debuggingPhonegap应用程序

Android模拟器的步骤:

  1. 导航到桌面计算机上的Chrome浏览器中的chrome:// inspect /。
  2. 在“设备”选项卡上findAndroid模拟器,然后单击“检查”链接

Google Chrome远程目标

另请参阅远程debuggingAndroid设备入门

我build议jsconsole 。 它可以让你注入任何JavaScript的页面,并提供一个基本的控制台。 有一个很好的远程debugging教程。

是的,你有console.log的日志错误,并显示Eclipse中的LogCat标签。 在那里,Web控制台消息(包括JS错误)将显示出来。 这是一个有点冗长,所以你必须过滤,只显示Web控制台标签,但它运作良好。 在这里描述: 显示CONSOLE.LOG输出和JAVASCRIPT错误与PHONEGAP ANDROID / ECLIPSE

我发现这适用于在Windows 7上通过Eclipsetesting应用程序时为Android / Phonegapdebuggingjavascript错误。

只需转到窗口>显示视图>其他…

然后selectAndroid文件夹下的LogCat

刚join的窗口/选项卡是Android模拟器发送日志和错误消息的地方。 你可以分离这个窗口并把它放在Eclipse IDE之外(我觉得这很有用)。 您还可以通过select窗口右上angular的5个彩色字母中的任何一个来控制您看到的错误types。

要隐藏无用的信息,以便只看到错误,请确保只有(E)被选中。 我个人也喜欢select(W)警告select以及(E)错误。

希望有所帮助!

有(最后)一个工具可用于Android的适当的JavaScriptdebugging – http://www.jshybugger.org/

特征:

  • 添加/删除/启用/禁用行断点
  • 观看表情
  • 步入/结束/结束
  • 暂停例外
  • 调用堆栈导航
  • 局部variables检查
  • 远程控制台
  • JavaScript语法和运行时错误报告
  • 查看/编辑/删除本地存储项目
  • 查看/编辑/删除会话存储项目
  • 查看/编辑/删除WebSQL数据库logging(观看video)
  • 查看页面资源(图片,脚本,HTML)
  • 远程控制台支持增强(堆栈跟踪)
  • debugging器:增强对象检查
  • debugging器:有条件的断点
  • debugging器:继续在这里

我很容易分两步解决。

更改日志logging的级别

在config.xml中添加这一行

  <log level="DEBUG"/> 

运行科多瓦日志

这是一个bat文件,你可以运行并跟踪所有的日志消息到你的phonegap项目,然后导航到\platforms\android\cordova然后打开log.bat ,现在可以使用命令行模拟你的应用程序

 cordova emulate 

并且日志将显示在打开log.bat时popup的cmd中

如果您愿意在某处设置NodeJS ,则可以使用John Boxall的iBug进行一些扩展debugging,尽pipe这是为iPhonedevise的,但我已经在Android上进行了testing,并且工作正常。 这基本上是移动设备的萤火虫。 我指向我的fork导致节点改变了很多,约翰的代码不会运行在一个现代nodeJS上,所以我修补了它在nodeJS 0.2.3上运行,在更新版本的nodeJS上运行YMMV。

如果你使用console.log你可以做简单的打印语句。 以及使用adb查看它们,您可以在设备上使用日志查看器并在其中查看日志。 更多信息: http : //www.technomancy.org/android/javascript-debugging/

捕获exception并在控制台中显示的最佳解决scheme是:

 window.onerror = function(msg, uri, line) { console.log(msg + uri + line); } 

在Eclipse中,你可以添加一个钩子到android模拟器后退button,并在飞行中检查一个值。 添加onBackPressed事件pipe理器,并从那里调用JavaScript控制台。 从eclipsedebugging的angular度来看,你将把一个Stringvariables的值改为你想要检查的值,并通过调用super.loadUrl把它传递给你的应用程序。

请参阅下面的代码。 不要忘记从DDMS视图启用应用程序的debugging

 public class MyActivity extends DroidGap { private String js = ""; @Override public void onBackPressed() { //add a breakpoint to the follow line //and change the value for "js" variable before continuing execution super.loadUrl("javascript:console.log(" + js + ")"); return; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setBooleanProperty("keepRunning", false); super.setIntegerProperty("splashscreen", R.drawable.splash); super.loadUrl("file:///android_asset/www/index.html", 20000); } } 

如果您使用的是Phonegap Build,并希望使用Chrome控制台进行debugging,那么这里有一个可行的解决scheme。 可以使用USBdebugging来debuggingWebViews( https://developer.chrome.com/devtools/docs/remote-debugging#debugging-webviews

首先,确保你的widget标签包含xmlns:android =“http://schemas.android.com/apk/res/android”;

 <widget xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="me.app.id" version="1.0.0"> 

然后添加以下内容

 <gap:config-file platform="android" parent="/manifest"> <application android:debuggable="true" /> </gap:config-file> 

它适用于Nexus 5,Phonegap 3.7.0。

 <preference name="phonegap-version" value="3.7.0" /> 

在Phonegap Build中构build应用程序,安装APK,将手机连接到USB,在手机上启用USBdebugging,然后访问chrome:// inspect。

来源: https : //www.genuitec.com/products/gapdebug/learning-center/configuration/

debuggingPhoneGap / Apache Cordova应用程序使用GapDebug很容易

  • https://www.genuitec.com/products/gapdebug/下载并安装GapDebug

  • 在PC / Mac上运行GapDebug

  • 启用Android设备上的开发人员选项和USBdebugging(设置 – >开发人员选项(ON) – > USBdebugging(开))

  • 如果找不到开发者选项(设置 – >关于电话 – >单击内部版本号7次)

  • 你可以从你的GapDebug中debugging你的应用程序

有关图像的详细步骤,请参阅http://phonegappro.com/tutorials/debugging-phonegap-applications-apache-cordova/

Phonegapdebugging仍然存在。 我所知道的是在设置中findphonegap build并打勾debugging应用程序选项。 它会在你保存的时候重build你的应用程序。 debuggingbutton将与重build选项一起出现在应用程序页面中。 (这个服务也使用内置的weinre)

我也发现最快的另一个选项是jsconsole.com 。 与其他debugging方法相比,它非常容易设置,并且几乎不需要configuration,您需要安装诸如驱动程序和SDK之类的许多东西。

注意!

在PhoneGap 10中,当你构build你的应用程序和任何在应用程序之外的请求(就像没有互联网一样)失败时,你将不得不在你的config.xml

 <gap:plugin name="com.indigoway.cordova.whitelist.whitelistplugin" version="1.1.1" /> <access origin="*" /> <allow-navigation href="*" /> <allow-intent href="*" /> 

我拉着我的头发,试图让任何远程debugging工具只工作,以查明外部请求被默认阻止。 这救了我。

更新:现在PhoneGap被称为Apache Cordova,如果你想用它来开发Android应用程序,你必须安装Android Studio。 要从Android Studio访问logcat控制台,请打开您的Android项目(它是Cordova项目中的platform / android文件夹),然后selectTools-> Android-> Android Device Monitor。

Android设备监视器(AVD)可以单独运行,因此您可以创build直接访问来避免所有这些path。 AVD将自动从您的仿真器上启动的日志消息,它允许您轻松设置filter来减less从仿真器接收的大量输出。 我特别喜欢按应用程序名称进行过滤。