我按照这段视频https://www.codenameone.com/how-do-i---access-native-device-functionality-invoke-native-interfaces.html中的说明进行操作,但是我的代码在查找行上抛出了java.lang.ClassNotFoundException:interfaces.MyNativeImpl。我使用的代码几乎与视频中的代码完全一样。

package interfaces;

import com.codename1.system.NativeInterface;

public interface MyNative extends NativeInterface{
    public String sayHi();
}


在android native目录中

package interfaces;

public class MyNativeImpl {
    public String sayHi() {
        return "hi";
    }

    public boolean isSupported() {
        return true;
    }
}


并在Java代码中:

    MyNative my = (MyNative)NativeLookup.create(MyNative.class);
    if(my != null && my.isSupported()){
        System.out.println("Hello!");
    }


我现在哪里出问题了?

最佳答案

那是完美的代码,可以在设备上运行。
您正在模拟器中看到异常,因为运行时类路径中缺少native/internal_tmp目录,但除了桌面上没有本机接口外,它不会引起任何问题:

java - CodeNameOne-NativeInterface-NativeLookup上的ClassNotFoundException-LMLPHP

10-06 01:26