質問

PhoneGap v1.3を使用して PhoneGap Android App を作成しています。私はシステムから特定のファイルを取得してからJS機能を実行するPhoneGap用のプラグインを書きました。
すべてのプラグインがPhoneGapクラスプラグインを拡張するため、そこから直接JS機能を実行することはできません。そのため、プラグインの機能から、実行 - >

PluginResult result = null;
Home home = new Home();
result = new PluginResult(Status.OK);
home.loadPage("pic.jpg");
.

このホームは、 DROIDGAPを拡張するマイメインクラスです。
自宅では、機能を持っています LOADPAGE

public void loadPage(String filePath){   
super.setIntegerProperty("loadUrlTimeoutValue", 60000);
super.loadUrl("javascript:navigator.somefunc(\""+filePath+"\");");  
}
.

問題は、DROIDGAPの setintegerproperty関数がNPEを投げていることです。これがログです。

01-16 11:41:32.364: W/System.err(13162): java.lang.NullPointerException
01-16 11:41:32.364: W/System.err(13162):    at com.phonegap.DroidGap.setIntegerProperty(DroidGap.java:738)
01-16 11:41:32.364: W/System.err(13162):    at e2o.mobile.Home.loadSharePage(Home.java:120)
01-16 11:41:32.364: W/System.err(13162):    at com.phonegap.plugins.checkImage.CheckUploadImage.execute(CheckUploadImage.java:158)
01-16 11:41:32.364: W/System.err(13162):    at com.phonegap.api.PluginManager$1.run(PluginManager.java:150)
01-16 11:41:32.364: W/System.err(13162):    at java.lang.Thread.run(Thread.java:1019)
.

SetIntegerProperty関数でのasculically -

public void setIntegerProperty(String name, int value) {
    this.getIntent().putExtra(name, value);
}
.

this.getintent()がNULLを返しています。 私は私が行方不明のものを教えてください。または私のユースケースのシナリオでは、そのJS機能を実行していますか。を使用しない場合

super.setIntegerProperty("loadUrlTimeoutValue", 60000, intent);
.

それではロードurも何もしません。 JSは呼び出されません、またはそれはタイムアウトします。

役に立ちましたか?

解決

これは、新しいHomeオブジェクトをインスタンス化しているためです。オブジェクトはコンストラクターを使用して作成されますが、onCreateメソッドが呼び出されないため、適切なオブジェクト設定が多く行われません。そのため、NullPointerExceptionが発生します。

ステータスがOKの新しいPluginResultを返しているので、の成功関数はnavigator.somefunc(filePath)メソッドを実行できます。そうすればはるかに簡単になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top