Android Codenameone将mimetype(PNG)关联到我的应用程序
我在将mime/文件类型(PNG)关联到我的应用程序时遇到问题 我遵循了这个指南: 我设置了这些构建提示(针对Android) 和android.xintent_这样的过滤器(我尝试了image/png和image/*作为mimetype)--> 这里是我的第二次尝试,只需要启动应用程序所需的代码Android Codenameone将mimetype(PNG)关联到我的应用程序,android,codenameone,mime-types,intentfilter,Android,Codenameone,Mime Types,Intentfilter,我在将mime/文件类型(PNG)关联到我的应用程序时遇到问题 我遵循了这个指南: 我设置了这些构建提示(针对Android) 和android.xintent_这样的过滤器(我尝试了image/png和image/*作为mimetype)--> 这里是我的第二次尝试,只需要启动应用程序所需的代码 public void start() { arg = Display.getInstance().getProperty("AppArg",
public void start()
{
arg = Display.getInstance().getProperty("AppArg", null);
if(arg != null)
{
Storage.getInstance().writeObject("Arg", arg);
Log.p(arg);
}
// if(arg != null)
// {
//
// MainForm m = new MainForm();
// Display.getInstance().createThread(new Runnable()
// {
//// @Override
// public void run()
// {
// System.out.println(arg);
// m.do_something(arg);
//
//
// }}, "open from Outside Thread").start();
//
// current = m.create(false);
// current.revalidate();
// }else
// {
if(current == null)
{
current = new MainForm().create(true);
// Display.getInstance().scheduleBackgroundTask(new Runnable()
// {
// @Override
// public void run()
// {
// if(!Display.getInstance().isSimulator())
// {
// Storage.getInstance().clearStorage();
// Storage.getInstance().clearCache();
// }
// }
//
// });
current.revalidate();
}
// }
current.show();
if(arg != null)
{
Dialog.show("Test", arg + " - " + arg.length(), "OK", "Cancel");
}else
{
Dialog.show("Test","" + Storage.getInstance().readObject("Arg") + Log.getLogContent(), "OK", "Cancel");
}
// disp.setProperty("AppArg", null);
}
06-04 13:50:49.618 8269 16651 W System.err:java.io.FileNotFoundException:file:/data/user/0/de.marcus.myapp/files/IMG_20210601_201624_pic.png:open失败:enoint(没有这样的文件或目录)
06-04 13:50:49.618 8269 16651 W System.err:at libcore.io.IoBridge.open(IoBridge.java:492)
06-04 13:50:49.618 8269 16651 W System.err:at java.io.FileOutputStream.(FileOutputStream.java:236)
06-04 13:50:49.618 8269 16651 W System.err:at java.io.FileOutputStream.(FileOutputStream.java:186)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.impl.android.AndroidImplementation.CreateFileOutStream(AndroidImplementation.java:6530)
06-04 13:50:49.618 8269 16651 W System.err:在com.codename1.impl.android.AndroidImplementation.getapprag(AndroidImplementation.java:2731)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.Display.getProperty(Display.java:3361)
06-04 13:50:49.618 8269 16651 W System.err:at de.marcus.myapp.MyApplication.start(未知来源:8)
06-04 13:50:49.618 8269 16651 W System.err:at de.marcus.myapp.MyApplicationStub.run(MyApplicationStub.java:163)
06-04 13:50:49.618 8269 16651 W System.err:at de.marcus.myapp.MyApplicationStub$1.run(MyApplicationStub.java:107)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.Display.processSerialCalls(Display.java:1365)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.Display.edtlopimpl(Display.java:1307)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.Display.invokeAndBlock(Display.java:1480)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.Display.invokeAndBlock(Display.java:1519)
06-04 13:50:49.618 8269 16651 W System.err:com.codename1.impl.android.android实现$3.run(android实现.java:1147)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.Display.processSerialCalls(Display.java:1365)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.Display.edtlopimpl(Display.java:1307)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.Display.mainEDTLoop(Display.java:1189)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.ui.runnablerrapper.run(runnablerrapper.java:120)
06-04 13:50:49.618 8269 16651 W System.err:at com.codename1.impl.CodenameOneThread$1.run(CodenameOneThread.java:60)
06-04 13:50:49.618 8269 16651 W System.err:at java.lang.Thread.run(Thread.java:923)
06-04 13:50:49.619 8269 16651 W System.err:原因:android.System.ErrnoException:打开失败:enoint(没有这样的文件或目录)
06-04 13:50:49.619 8269 16651 W System.err:at libcore.io.Linux.open(本机方法)
06-04 13:50:49.619 8269 16651 W System.err:at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
06-04 13:50:49.619 8269 16651 W System.err:at libcore.io.BlockGuardOs.open(BlockGuardOs.java:254)
06-04 13:50:49.619 8269 16651 W System.err:at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
06-04 13:50:49.619 8269 16651 W System.err:at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7871)
06-04 13:50:49.619 8269 16651 W System.err:at libcore.io.IoBridge.open(IoBridge.java:478)
06-04 13:50:49.619 8269 16651 W系统。错误:。。。还有19个
谢谢你的帮助
Marcus这可能与Android启动模式有关。 尝试添加生成提示:
android.activity.launchMode=singleTask
嗨,陈,不幸的是,我已经试过了这是一致的吗?你从来没有在appag中看到值吗?是的,在我的手机上我从来没有看到值,我总是得到空值。你能在不同的android上试试吗?我想知道这是否是一个设备问题我想我看到了一个潜在的问题。无论如何,我今天需要推送更新,所以请在几个小时后重试。请发送一个新版本,然后看看你是否得到同样的异常。请特别检查文件名。我认为
文件:
前缀是这里的问题。
public void start()
{
String arg = Display.getInstance().getProperty("AppArg", null);
if(arg != null)
{
System.out.println("opend with arg");
MainForm m = new MainForm();
Display.getInstance().createThread(new Runnable()
{
// @Override
public void run()
{
System.out.println(arg);
m.do_something(arg);
}}, "open from Outside Thread").start();
current = m.create(false);
current.revalidate();
}else
{
if(current == null)
{
current = new MainForm().create(true);
Display.getInstance().scheduleBackgroundTask(new Runnable()
{
@Override
public void run()
{
if(!Display.getInstance().isSimulator())
{
Storage.getInstance().clearStorage();
Storage.getInstance().clearCache();
}
}
});
current.revalidate();
}
}
current.show();
if(arg != null)
{
Dialog.show("Test", arg + " - " + arg.length(), "OK", "Cancel");
}else
{
Dialog.show("Test", "AppArg = null ", "OK", "Cancel");
}
// disp.setProperty("AppArg", null);
}
public void start()
{
arg = Display.getInstance().getProperty("AppArg", null);
if(arg != null)
{
Storage.getInstance().writeObject("Arg", arg);
Log.p(arg);
}
// if(arg != null)
// {
//
// MainForm m = new MainForm();
// Display.getInstance().createThread(new Runnable()
// {
//// @Override
// public void run()
// {
// System.out.println(arg);
// m.do_something(arg);
//
//
// }}, "open from Outside Thread").start();
//
// current = m.create(false);
// current.revalidate();
// }else
// {
if(current == null)
{
current = new MainForm().create(true);
// Display.getInstance().scheduleBackgroundTask(new Runnable()
// {
// @Override
// public void run()
// {
// if(!Display.getInstance().isSimulator())
// {
// Storage.getInstance().clearStorage();
// Storage.getInstance().clearCache();
// }
// }
//
// });
current.revalidate();
}
// }
current.show();
if(arg != null)
{
Dialog.show("Test", arg + " - " + arg.length(), "OK", "Cancel");
}else
{
Dialog.show("Test","" + Storage.getInstance().readObject("Arg") + Log.getLogContent(), "OK", "Cancel");
}
// disp.setProperty("AppArg", null);
}
06-04 13:50:49.618 8269 16651 W System.err: java.io.FileNotFoundException: file:/data/user/0/de.marcus.myapp/files/IMG_20210601_201624_pic.png: open failed: ENOENT (No such file or directory)
06-04 13:50:49.618 8269 16651 W System.err: at libcore.io.IoBridge.open(IoBridge.java:492)
06-04 13:50:49.618 8269 16651 W System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:236)
06-04 13:50:49.618 8269 16651 W System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:186)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.impl.android.AndroidImplementation.createFileOuputStream(AndroidImplementation.java:6530)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.impl.android.AndroidImplementation.getAppArg(AndroidImplementation.java:2731)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.Display.getProperty(Display.java:3361)
06-04 13:50:49.618 8269 16651 W System.err: at de.marcus.myapp.MyApplication.start(Unknown Source:8)
06-04 13:50:49.618 8269 16651 W System.err: at de.marcus.myapp.MyApplicationStub.run(MyApplicationStub.java:163)
06-04 13:50:49.618 8269 16651 W System.err: at de.marcus.myapp.MyApplicationStub$1.run(MyApplicationStub.java:107)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.Display.processSerialCalls(Display.java:1365)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.Display.edtLoopImpl(Display.java:1307)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.Display.invokeAndBlock(Display.java:1480)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.Display.invokeAndBlock(Display.java:1519)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.impl.android.AndroidImplementation$3.run(AndroidImplementation.java:1147)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.Display.processSerialCalls(Display.java:1365)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.Display.edtLoopImpl(Display.java:1307)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.Display.mainEDTLoop(Display.java:1189)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
06-04 13:50:49.618 8269 16651 W System.err: at com.codename1.impl.CodenameOneThread$1.run(CodenameOneThread.java:60)
06-04 13:50:49.618 8269 16651 W System.err: at java.lang.Thread.run(Thread.java:923)
06-04 13:50:49.619 8269 16651 W System.err: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
06-04 13:50:49.619 8269 16651 W System.err: at libcore.io.Linux.open(Native Method)
06-04 13:50:49.619 8269 16651 W System.err: at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
06-04 13:50:49.619 8269 16651 W System.err: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:254)
06-04 13:50:49.619 8269 16651 W System.err: at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
06-04 13:50:49.619 8269 16651 W System.err: at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7871)
06-04 13:50:49.619 8269 16651 W System.err: at libcore.io.IoBridge.open(IoBridge.java:478)
06-04 13:50:49.619 8269 16651 W System.err: ... 19 more
android.activity.launchMode=singleTask