为什么Codename One的NativeLookup.create返回null?

时间:2016-01-26 18:04:07

标签: mobile windows-phone-8.1 codenameone

我目前正试图在Windows手机上使用某些本机代码进行代号。我创建了一个原生演示"我将NativeCalls类更改为仅支持一个简单方法的项目:

package com.codename1.nativedemo;
import com.codename1.system.NativeInterface;
public interface NativeCalls extends NativeInterface {
    public String testString();
}

从这一个我使用了上下文菜单项" Generate Native"并更改了NativeCallsImpl.cs文件以返回" windows phone"调用testString时我做的最后一次更改是在StateMachine

之内
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 Tools,QR代码无法正常工作,显示"公司应用程序无法安装),应用程序正常启动但是表明NativeLookup返回null。 dist目录中的.jar文件包含正确位置的.cs文件(com / codename1 / nativedemo / NativeCallsImpl.cs,除了NativeCalls.class)

1 个答案:

答案 0 :(得分:2)

此查找返回null是在创建期间抛出异常或某些操作失败。

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

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