Phonegap 2.2升级:NPObject上的错误调用方法(Javascript接口)

时间:2012-11-16 17:18:19

标签: java android cordova

我正在使用Phonegap应用程序(在Android上),我使用Phonegap 2.2更新了我的应用程序。 不幸的是,现在我在使用Javascript界面​​时遇到错误。

Uncaught Error: Error calling method on NPObject. at file:///android_asset/www/dossier_med_list.html#/android_asset/www/dossier_med_new.html:22

使用Javascript接口函数时发生错误:

var tel = window.language_classe.getSystemPhoneNumber() ;

这就是上课的方式:

import org.apache.cordova.DroidGap;

import android.content.Context;
import android.telephony.TelephonyManager;
import android.webkit.WebView;

public class LanguageClass {
    private WebView mAppView;
    private DroidGap mGap;
    private Context mContext;


    public LanguageClass( DroidGap gap, WebView view, Context context) {
        mAppView = view;
        mGap = gap;
        mContext = context;

    }

    public String getSystemPhoneNumber() {
        TelephonyManager tMgr = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
        return tMgr.getLine1Number();
    }

}

这就是我初始化应用程序的方式:

   public class App extends DroidGap
   {
    private LanguageClass language;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        language = new LanguageClass(this, appView, this.getBaseContext());
        appView.addJavascriptInterface(language, "language_classe");

        super.setIntegerProperty("loadUrlTimeoutValue", 60000);
        super.setIntegerProperty("splashscreen", R.drawable.splash);
        super.loadUrl("file:///android_asset/www/accueil.html", 150000);
    }

}

任何线索为何会发生这种情况?我在文档中没有看到关于此问题的任何内容,在更新到Phonegap 2.2.0时,我没有对此功能进行任何更改。

谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

你应该让LanguageClass从PhoneGap扩展Plugin类。这样你就可以避免这些奇怪的问题。

我在App类中看到的是你调用没有参数的LanguageClass()构造函数,但在你的LanguageClass类中没有相应的构造函数。