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