Mobile 为什么代号为One';s NativeLookup.create返回空值?

Mobile 为什么代号为One';s NativeLookup.create返回空值?,mobile,windows-phone-8.1,codenameone,Mobile,Windows Phone 8.1,Codenameone,我目前正在尝试让codename one在windows phone上使用一些本机代码。我创建了一个“本机演示”项目,在该项目中,我更改了NativeCalls类,以仅支持一个简单的方法: package com.codename1.nativedemo; import com.codename1.system.NativeInterface; public interface NativeCalls extends NativeInterface { public String tes

我目前正在尝试让codename one在windows phone上使用一些本机代码。我创建了一个“本机演示”项目,在该项目中,我更改了
NativeCalls
类,以仅支持一个简单的方法:

package com.codename1.nativedemo;
import com.codename1.system.NativeInterface;
public interface NativeCalls extends NativeInterface {
    public String testString();
}
在这个例子中,我使用了上下文菜单项“Generate Native”,并在调用
testString
时将nativecallsiml.cs文件更改为返回“windows phone”。我所做的最后一次更改是在
状态机中进行的

protected void onGUI1_AddNativeButtonAction(Component c, ActionEvent event) {
    super.onGUI1_AddNativeButtonAction(c, event);
    try {
        NativeCalls n = (NativeCalls) NativeLookup.create(NativeCalls.class);
        if (n != null) {
            if (n.isSupported()) {
                Dialog.show("Got string", n.testString(), "OK", null);
            } else {
                Dialog.show("Error", "Platform not supported!", "OK", null);
            }
        } else {
            Dialog.show("Error", "Native lookup returned null!", "OK", null);
        }
        c.getComponentForm().revalidate();
    } catch (Throwable t) {
        Dialog.show("Error", "Exception during native access: " + t, "OK", null);
    }
}

这个构建工作得非常好,它也可以在模拟器上运行。但当我在手机上部署xap文件时(通过WP Dev工具,二维码不起作用,显示“公司应用程序无法安装”),应用程序正常启动,但显示
NativeLookup
返回空值。dist目录中的内置.jar文件包含正确位置的.cs文件(com/codename1/nativedemo/nativecallsiml.cs,位于NativeCalls.class的右侧)

如果在创建过程中引发异常或出现故障,则此查找将返回null

我不能100%确定这在当前的Windows Phone端口中是否正常工作


仅供参考当前的Windows Phone端口已弃用,正在进行完全重写。

在nativeCallSimp.cs中,您是否设置了isSupported()方法返回true?默认情况下,我认为它将是false。我猜这可能对null问题没有帮助,但这将是下一个问题。是的,它返回true是否有可能在新版本可用时立即收到通知?我们在博客、推特、facebook等网站上发布所有新闻。因此通过其中一个订阅通知se频道可能会提供这样的通知。