FileSytemStorage.getAppHomePath()dirに保存されている画像を生成しています。Codename Oneで画像を共有しているときに、受信したメッセージに画像が常に欠落しています。
long time = new Date().getTime();
String fullOutputPath = FileSystemStorage.getInstance().getAppHomePath()
+ "Montage_" + Long.toString(time) + ".png";
// Save the image with the ImageIO class
try (OutputStream os = FileSystemStorage.getInstance().openOutputStream(fullOutputPath)){
ImageIO.getImageIO().save(montage.getMontageImage(), os, ImageIO.FORMAT_PNG, 1.0f);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Enable image sharing (outside the try/catch so that the outputstream in closed for sure)
if (FileSystemStorage.getInstance().exists(fullOutputPath)) {
Dialog.show("Saved", "Photo collage saved to " + fullOutputPath
+ " (file size = " + FileSystemStorage.getInstance().getLength(fullOutputPath) +" B)", "OK", null);
//Photo collage saved to file://home/Montage_14669... .png (file size = 50387B)
findValidateMontageShareButton3().setImageToShare(fullOutputPath, "image/png");
// Null pointer exception
だから私はNPEを取得し、そのように、私ドン場合:私は今、私は私のアクションメソッドに(Codename One documentationに基づいて)次のコードを使用しています理由です...、電子メール経由でSMSを、それを共有する必要がありますファイルが存在するかどうかテストしませんが、NPEはありませんが、イメージはまだ失われています(シミュレータとデバイスの両方)。次のように
スタックトレースは次のとおりです。
java.lang.NullPointerException
at userclasses.StateMachine.onPage3_ValidateMontageShareButton3Action(StateMachine.java:852)
at generated.StateMachineBase.handleComponentAction(StateMachineBase.java:757)
at com.codename1.ui.util.UIBuilder$FormListener.actionPerformed(UIBuilder.java:2835)
at com.codename1.ui.util.EventDispatcher.fireActionSync(EventDispatcher.java:459)
at com.codename1.ui.util.EventDispatcher.fireActionEvent(EventDispatcher.java:362)
at com.codename1.ui.Button.fireActionEvent(Button.java:411)
at com.codename1.ui.Button.released(Button.java:442)
at com.codename1.ui.Button.pointerReleased(Button.java:530)
at com.codename1.ui.Form.pointerReleased(Form.java:2627)
at com.codename1.ui.Form.pointerReleased(Form.java:2563)
at com.codename1.ui.Component.pointerReleased(Component.java:3158)
at com.codename1.ui.Display.handleEvent(Display.java:2025)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1067)
at com.codename1.ui.Display.mainEDTLoop(Display.java:996)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
私のアプリが生成され、ファイルが共有アプリにづけしていないことになります。 here for Androidとアドバイスをして追加の許可を加えなければなりませんか?
はご注意:私はそれがこの問題に関連しているかどうかを知りませんが、私はもうエクリプスからコードネームつ設定メニューにアクセスすることはできません(多分CN1のLIBのVへのアップグレード以来115)
すべてのヘルプは大歓迎します、だからここ
乾杯
必要な権限が必要です。 nullポインタ例外のスタックは何ですか? –
私はスタックトレースを追加しました。 – HelloWorld
あなたは私にアイデアをくれました。私はfindValidateMontageShareButton3()がnullを返していたかどうかをテストしました。だから説明できませんが、 '((ShareButton)c).setImageToShare(fullOutputPath、" image/png ");'に変わり、NPEは消えました。不幸にも私が送るメッセージはまだ画像を見逃しています。 – HelloWorld