android 当我转到 API>19 时,我的 Java 接口给了我“TypeError: Android.mthod is not a function

Posted

技术标签:

【中文标题】android 当我转到 API>19 时,我的 Java 接口给了我“TypeError: Android.mthod is not a function【英文标题】:android when I go to API>19 my Interface to Java gives me "TypeError: Android.mthod is not a function 【发布时间】:2019-02-11 01:02:13 【问题描述】:

我的最小 API 为 16,一切正常,但调试确实很痛苦,所以在 API 19 之后我们可以使用 Chrome 调试器,但在这里我的 Java 代码接口给我错误“TypeError: android.JavaMethod is不是函数”,我将它与 Angular 一起用于混合应用程序,它运行良好,ios 版本与 Safari 调试器配合良好,当然相同的代码需要一些修饰才能在 Android 中运行,我需要调试器来解决它出去。这有什么问题?

相关错误

[INFO:CONSOLE(11594)] "TypeError: Android.JavaMethod is not a function
09-05 15:24:28.103: I/chromium(18021):     at myJavaMethod 
(file:///android_asset/my_angular/MyFile.js:217:18)
09-05 15:24:28.103: I/chromium(18021):     at Object.<anonymous> 
(file:///android_asset/my_angula/MyFile.js:901:67)
...

我的 JS 文件

function myJavaMethod(curData)

  return(Android.JavaMethod(curData));   
 // --- end of myJavaMethod ---

... more code and then i call it from the angular controller
$scope.myCopy = myJavaMethod('arg');                
...

我的 java 文件

weby1.setWebViewClient(new WebViewClient());
weby1.loadUrl("file:///android_asset/my_angular_hl/index.html");

// call to interface to android
weby1.addjavascriptInterface(new JavaScriptInterface(this), "Android");

...
public class JavaScriptInterface 

         Context mContext;
         JavaScriptInterface(Context c) 
             mContext = c;
         

         public String JavaMethod(String arg)
         
              ..stuff
              return str;
         

         ... more methods

【问题讨论】:

【参考方案1】:

我再一次回答我自己的问题.. 我的大部分开发工作都是用 angularJS 做的,只是在 Android(BT 等)中做一些低级的工作,这就是为什么我没有费心提高 API 级别的原因,之后进一步挖掘我发现对于 API17 及更高版本,您需要注释接口中的每个方法,并添加导入。错误消息完全具有误导性,让我无处可去

import android.webkit.JavascriptInterface;
...   
@JavascriptInterface
public String JavaMethod(String arg)

 ...

【讨论】:

以上是关于android 当我转到 API>19 时,我的 Java 接口给了我“TypeError: Android.mthod is not a function的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch2 当我转到另一个页面时停止 YouTube 视频

当我转到共享服务管理中的“搜索设置”页面时,出现此错误:“已添加具有相同密钥的项目。”

我有使用路由的导航。每次当我转到其他页面并返回时,我都会丢失所有变量值。我怎样才能解决这个问题?

当我转到第 2 页时,为啥分页器不记得我的自定义参数?

AWS Api 网关:缺少身份验证令牌

Eclipse->导入->这里没有 *Android*