本机实现不起作用

时间:2016-04-13 11:07:57

标签: android native codenameone

尝试使用代号为1的原生Android代码,但同样不能在设备上运行。当我尝试在模拟器上它不工作也没有任何消息/错误。但是当在实际设备上尝试相同时,则获得消息"NO Support"。这意味着在NativeCall nt = NativeLookup.create(NativeCall.class);到设备ntnullpublic class NativeCallImpl extends Activity implements userclasses.NativeCall{ public void setNative(String param) { Intent intent = new Intent(this, UploadData.class); PendingIntent pendingIntent = PendingIntent.getBroadcast( this.getApplicationContext(), 234324243, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), pendingIntent); Toast.makeText(getApplicationContext(), "Native call", Toast.LENGTH_LONG).show(); } public boolean isSupported() { return true; } } 。我的代码中有错误吗?

NativeImpl代码:

public interface NativeCall extends NativeInterface{
public void setNative(String mobileNumber);
//public boolean isSupported();
}

界面:

private void autoUpdate(){
    NativeCall nt= NativeLookup.create(NativeCall.class);
    if(nt!=null){
        nt.setNative(getMobileNumber());
    }else{
        Dialog.show("NO Support", "No Native Support", "OK", null);
    }
}

呼叫:

class Program
{
    static void Main(string[] args)
    {
        string str = Console.ReadLine().ToLower();
        string sortedString = String.Concat(str.OrderBy(c => c));

        foreach (char ch in sortedString)
        {
            Console.WriteLine($"{ch} => {str.Count(x => x == ch)}");
        }
    }
}

设备截图: class Thread

2 个答案:

答案 0 :(得分:1)

我不知道您的代码是否存在问题,但您无法在模拟器上测试本机功能。您可以使用include sources构建选项并下载源代码并在Android Studio或XCode中对其进行编译,然后在这些环境中对其进行测试。

答案 1 :(得分:1)

您可能在控制台中遇到异常,如果连接设备电缆并运行DDMS,您将看到该异常。

不要在本机接口实现中扩展Activity。如果您需要一个Activity,请添加一个单独的类。

不要在impl类中实现本机接口。具体删除它:implements userclasses.NativeCall。如果您使用对等组件,它将产生问题......

有关详细信息,请查看developer guide section on native interfaces