- This topic has 2 replies, 2 voices, and was last updated 12 years, 3 months ago by ess_stegra.
-
AuthorPosts
-
ess_stegraParticipantI am trying to reproduce a very simple example from Apache Cordova’s Plugin Development Guide. The sample HTML JavaScript does not seem to be executing beyond the call to the Android Java Plug in. Here is the Java Code that deploys to the Android Emulator successfully and opens index.html:
MainActivity.javapackage com.essentialsoftware.testbump; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.support.v4.app.NavUtils; import org.apache.cordova.*; public class MainActivity extends DroidGap { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } }
Here is the java plugin:
Echo.javapackage com.essentialsoftware.testbump; import org.apache.cordova.api.Plugin; import org.apache.cordova.api.PluginResult; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; /** * This class echoes a string called from JavaScript. */ public class Echo extends Plugin { /** * Executes the request and returns PluginResult. * * @param action The action to execute. * @param args JSONArry of arguments for the plugin. * @param callbackId The callback id used when calling back into JavaScript. * @return A PluginResult object with a status and message. */ public PluginResult execute(String action, JSONArray args, String callbackId) { try { if (action.equals("echo")) { String echo = args.getString(0); if (echo != null && echo.length() > 0) { return new PluginResult(PluginResult.Status.OK, echo); } else { return new PluginResult(PluginResult.Status.ERROR); } } else { return new PluginResult(PluginResult.Status.INVALID_ACTION); } } catch (JSONException e) { return new PluginResult(PluginResult.Status.JSON_EXCEPTION); } } }
Here is the web page that invokes Echo:
index.html<!DOCTYPE HTML> <html> <head> <title>Cordova</title> <script src="cordova-2.0.0.js"></script> </head> <body> <h1 id="demo">Hello World</h1> <script type="text/javascript"> document.getElementById("demo").innerHTML="Before function declaration"; window.echo = function(str, callback) { cordova.exec(callback, function(err) { callback('Nothing to echo.'); }, "Echo", "echo", [str]); }; document.getElementById("demo").innerHTML="After function declaration"; window.echo("echome", function(echoValue) { alert(echoValue == "echome"); // should alert true. }); document.getElementById("demo").innerHTML="After function invocation"; alert("hello" == "Goodbye"); document.getElementById("demo").innerHTML="Test2"; </script> </body> </html>
When index.html opens in the android emulator it displays
After function declarationIf I am correct, this means the JavaScript is erroring out in
window.echo("echome", function(echoValue) { alert(echoValue == "echome"); // should alert true. });
Any advice as to what I am doing wrong? Any tips for debugging the JavaScript or my Andriod Java Code?
Here is my installation summary and my error log.
Installation Summary:*** Date:
Thursday, August 30, 2012 12:02:41 AM MDT*** System properties:
OS=WindowsVista
OS version=6.1.0
OS arch=x86
Profile arch=x86
Window system=win32
Java version=1.6.0_13
Workspace=file:/C:/Users/sgray/Documents/Workspaces/
VM Args=-Xmx512m
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=64m
-Dosgi.nls.warnings=ignore
-Djava.class.path=C:\Users\sgray\AppData\Local\MYECLI~1\MYECLI~1\../Common/plugins/ORB7B5~1.JAR*** Subscription information
Product Id: E3MP (MyEclipse Professional Subscription)
License version: 3.0
Full Maintenance Included
Subscription expiration date (YYYYMMDD): 20130715
Number of users: 1*** Eclipse details:
MyEclipse Enterprise WorkbenchVersion: 10.6
Build id: 10.6-20120727Blueprint: MyEclipse 10
com.genuitec.myeclipse.database – 10.6.0.me201207261914
com.genuitec.myeclipse.desktop – 10.6.0.me201207261914
com.genuitec.myeclipse.editor – 10.6.0.me201207261914
com.genuitec.myeclipse.enterprise.workbench – 10.6.0.me201207261914
com.genuitec.myeclipse.geronimo – 10.6.0.me201207261914
com.genuitec.myeclipse.glassfish – 10.6.0.me201207261914
com.genuitec.myeclipse.icefaces.feature – 10.6.0.me201207261914
com.genuitec.myeclipse.iedebugger – 10.6.0.me201207261914
com.genuitec.myeclipse.imageeditor – 10.6.0.me201207261914
com.genuitec.myeclipse.jboss – 10.6.0.me201207261914
com.genuitec.myeclipse.jetty – 10.6.0.me201207261914
com.genuitec.myeclipse.jonas – 10.6.0.me201207261914
com.genuitec.myeclipse.jrun – 10.6.0.me201207261914
com.genuitec.myeclipse.jsf – 10.6.0.me201207261914
com.genuitec.myeclipse.matisse – 10.6.0.me201207261914
com.genuitec.myeclipse.maven – 10.6.0.me201207261914
com.genuitec.myeclipse.oracle – 10.6.0.me201207261914
com.genuitec.myeclipse.orion – 10.6.0.me201207261914
com.genuitec.myeclipse.persistence – 10.6.0.me201207261914
com.genuitec.myeclipse.pulse – 10.6.0.me201207261914
com.genuitec.myeclipse.reports – 10.6.0.me201207261914
com.genuitec.myeclipse.resin – 10.6.0.me201207261914
com.genuitec.myeclipse.struts – 10.6.0.me201207261914
com.genuitec.myeclipse.sun – 10.6.0.me201207261914
com.genuitec.myeclipse.tomcat – 10.6.0.me201207261914
com.genuitec.myeclipse.uml2 – 10.6.0.me201207261914
com.genuitec.myeclipse.visualvm – 10.6.0.me201207261914
com.genuitec.myeclipse.visualvm.server – 10.6.0.me201207261914
com.genuitec.myeclipse.weblogic – 10.6.0.me201207261914
com.genuitec.myeclipse.websphere – 10.6.0.me201207261914
com.genuitec.myeclipse.ws – 10.6.0.me201207261914
org.eclipse.birt – 2.6.1.me201207261914
org.eclipse.datatools.connectivity.feature – 1.9.0.me201207261914
org.eclipse.datatools.enablement.feature – 1.9.0.me201207261914
org.eclipse.datatools.modelbase.feature – 1.9.0.v201106031100-77078CcNBHCBYKYEbNV
org.eclipse.datatools.sqldevtools.feature – 1.9.0.me201207261914
org.eclipse.emf – 2.7.0.v20110606-0949
org.eclipse.gef – 3.7.0.v20110425-2050-777D-81B2Bz0685C3A6E34272
org.eclipse.graphiti.feature – 0.8.0.v20110607-1252
org.eclipse.jpt.jpa.feature – 3.0.0.me201207261914
org.eclipse.jpt.jpadiagrameditor.feature – 1.0.0.me201207261914
org.eclipse.jst.common.fproj.enablement.jdt – 3.3.0.me201207261914
org.eclipse.jst.enterprise_ui.feature – 3.3.0.me201207261914
org.eclipse.jst.server_adapters.ext.feature – 3.3.0.me201207261914
org.eclipse.jst.server_adapters.feature – 3.2.100.me201207261914
org.eclipse.jst.server_ui.feature – 3.3.0.me201207261914
org.eclipse.jst.ws.axis2tools.feature – 1.1.200.me201207261914
org.eclipse.m2e.feature – 1.0.0.me201207261914
org.eclipse.sapphire.platform – 0.3.0.201106221325
org.eclipse.wst.common.fproj – 3.3.0.me201207261914
org.eclipse.wst.server_adapters.feature – 3.2.100.me201207261914
org.eclipse.xsd – 2.7.0.v20110606-0949
org.springframework.ide.eclipse.feature – 2.9.1.me201207261914com.android.ide.eclipse.adt – 20.0.3.v201208082019-427395
com.android.ide.eclipse.ddms – 20.0.3.v201208082019-427395
com.android.ide.eclipse.hierarchyviewer – 20.0.3.v201208082019-427395
com.android.ide.eclipse.traceview – 20.0.3.v201208082019-427395
fr.obeo.acceleo.bridge.feature – 2.6.0.200906261742
org.eclipse.cvs – 1.3.100.v20110520-0800-7B78FHl9VF7BD7KBM4GP9C
org.eclipse.draw2d – 3.7.0.v20110425-2050-46-7w3122153603161
org.eclipse.equinox.p2.core.feature – 1.0.1.v20110906-1605-8290FZ9FVKHVRKtmx3fpNuo02129
org.eclipse.equinox.p2.extras.feature – 1.0.1.v20110906-1605-7A4FD4DiVOMap8cHSc6vPuny4gqO
org.eclipse.equinox.p2.rcp.feature – 1.0.1.v20110906-1605-782EqBqNKGVkiV-PUsgz-uny4gqO
org.eclipse.equinox.p2.user.ui – 2.1.2.R37x_v20110815-1155-6-Bk8pYWZz0qUTX5I15GZWwbXkrl
org.eclipse.help – 1.3.0.v20110530-0844-7i7uFFmFFl8nvqbDpEqTvx
org.eclipse.jdt – 3.7.2.v20120120-1414-7z8gFcuFMP7BW5XTz0jLTnz0l9B1
org.eclipse.jsf.feature – 3.3.0.me201207261914
org.eclipse.ocl – 3.1.0.v20110606-1427
org.eclipse.pde – 3.7.2.v20120120-1420-7b7rFUOFEx2Xnqafnpz0E–0
org.eclipse.platform – 3.7.2.v20120207-1839-9gF7UHPDFxGjd-PqDr2jX_4yKaumkoHTz04_q-q
org.eclipse.rcp – 3.7.2.v20120120-1424-9DB5FmnFq5JCf1UA38R-kz0S0272Eclipse startup command=-os
win32
-ws
win32
-arch
x86
-showsplash
-launcher
C:\Users\sgray\AppData\Local\MyEclipse\MyEclipse 10\myeclipse.exe
-name
Myeclipse
–launcher.library
C:\Users\sgray\AppData\Local\MyEclipse\MyEclipse 10\../Common/plugins/org.eclipse.equinox.launcher.i18n.win32.win32.x86_4.2.0.v201201111650\eclipse_4201.dll
-startup
C:\Users\sgray\AppData\Local\MyEclipse\MyEclipse 10\../Common/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
-install
C:\Users\sgray\AppData\Local\MyEclipse\MyEclipse 10
-configuration
C:\Users\sgray\AppData\Local\MyEclipse\MyEclipse 10\configuration
-vm
C:\Users\sgray\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\client\jvm.dllError Log:
!SESSION 2012-06-06 01:17:11.766 ———————————————–
eclipse.buildId=unknown
java.version=1.6.0_13
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:04.208
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\html\css_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:04.427
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\html\forms_lists_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:04.505
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\html\htmlform_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:04.598
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\html\html_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:04.661
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\html\javascript_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:04.723
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\jsp\jsf_f_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:05.052
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\jsp\jsf_h_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:05.114
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\jsp\struts_bean_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:05.208
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\jsp\struts_html_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:05.270
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\jsp\struts_logic_snippets.xml!ENTRY com.genuitec.eclipse.wizards 1 0 2012-06-06 01:18:05.364
!MESSAGE Installed snippet library: C:\Users\sgray.ESSENTIALSOFTWA\AppData\Local\MyEclipse\MyEclipse 10\configuration\org.eclipse.osgi\bundles8<!– [\.cp\snippets\jsp\struts_tiles_snippets.xml!ENTRY org.eclipse.osgi 2 0 2012-06-06 01:19:16.099
!MESSAGE While loading class “org.eclipse.wst.jsdt.internal.core.JavaModelManager$16”, thread “Thread[Worker-8,5,main]” timed out waiting (5000ms) for thread “Thread[main,6,main]” to finish starting bundle “org.eclipse.wst.jsdt.core_1.1.100.me201203060843 [961]”. To avoid deadlock, thread “Thread[Worker-8,5,main]” is proceeding but “org.eclipse.wst.jsdt.internal.core.JavaModelManager$16” may not be fully initialized.
!STACK 0
org.osgi.framework.BundleException: State change in progress for bundle “reference:file:/C:/Users/sgray.ESSENTIALSOFTWA/AppData/Local/MyEclipse/Common/plugins/org.eclipse.wst.jsdt.core_1.1.100.me201203060843.jar” by thread “main”.
at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:463)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at org.eclipse.wst.jsdt.internal.core.JavaModelManager$15.run(JavaModelManager.java:4182)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
… 16 more
Root exception:
org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
at org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)
at org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:463)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at org.eclipse.wst.jsdt.internal.core.JavaModelManager$15.run(JavaModelManager.java:4182)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)!ENTRY org.eclipse.core.jobs 2 2 2012-06-06 01:22:47.284
!MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.eclipse.m2e.core.internal.index.nexus.IndexUpdaterJob
support-joyMemberSteven,
Thank you for the installation details. Your query is related to android plugin development and cordova javascript. Please note that we do not provide intrinsic support for the same. I would recommend you cross-post on cordova javascript forums or android forums to receive better support. E.g.
1. http://www.sencha.com/forum/archive/index.php/t-202782.html?s=806b802c3aa2c76e05d4d7c69e744764
2. http://www.greatchurchwebsites.org/forums/showthread.php?t=13345
3. http://www.sitepoint.com/forums/showthread.php?866779-Javascript-confirm-(cordova)If you want me to investigate this further please provide below information –
1. How did you add android plugin? Please provide update site or weblink to download plugin
2. How did you add cordova javascript support to MyEclipse? Please add more details.
3. Clear your .log file located at [your workspace dir]/.metadata/.log, replicate the issue and attach file here
4. Attach a screenshot of the issue you are facing to help me get a visual
5. Could you zip a sample project and attach the same here to help me replicate this issue at my end?
ess_stegraParticipantJoy,
I will try the other forums first and let you know what I find out. Thanks!Steven
-
AuthorPosts