NativeScript中使用.extend()的ClassNotFoundException(ClassNotFoundException in NativeScript using .extend

编程入门 行业动态 更新时间:2024-10-11 17:20:25
NativeScript中使用.extend()的ClassNotFoundException(ClassNotFoundException in NativeScript using .extend())

我正在尝试扩展GoogleApiClient.ConnectionCallbacks(),但一直收到错误

`java.lang.RuntimeException:无法启动活动ComponentInfo {org.nativescript.sampleGroceries / com.tns.NativeScriptActivity}:com.tns.NativeScriptException:调用js方法onCreate失败

调用模块功能时出错

错误:java.lang.ClassNotFoundException:com.google.android.gms.common.api.GoogleApiClient_ConnectionCallbacks java.lang.Class.classForName(Native Method)java.lang.Class.forName(Class.java:324)java.lang。 Class.forName(Class.java:285)com.tns.DexFactory.generateDex(DexFactory.java:262)com.tns.DexFactory.resolveClass(DexFactory.java:120)com.tns.ClassResolver.resolveClass(ClassResolver.java: 45)

`

我的相应代码是

var GoogleApiClient = com.google.android.gms.common.api.GoogleApiClient; var myConnectionCallbacks = GoogleApiClient.ConnectionCallbacks.extend({ onConnected: function(connectionHint){ var MessageListener = MessageListener.extend({ onFound: function(message){ Log.d("MESSAGE", "Found message :) "); }, onLost: function(message){ Log.d("MESSAGE", "Lost message :( "); } }); var mMessageListener = new MessageListener(); }, onConnectionSuspended: function(){} }); var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); test.addConnectionCallbacks(new myConnectionCallbacks(this));

也许我误解了Docs? https://docs.nativescript.org/runtimes/android/generator/extend-class-interface

编辑:为什么在GoogleApiClient之后错误日志中有下划线?

有什么建议我做错了吗?

I am trying to extend GoogleApiClient.ConnectionCallbacks(), but keep getting an error

`java.lang.RuntimeException: Unable to start activity ComponentInfo{org.nativescript.sampleGroceries/com.tns.NativeScriptActivity}: com.tns.NativeScriptException: Calling js method onCreate failed

Error calling module function

Error: java.lang.ClassNotFoundException: com.google.android.gms.common.api.GoogleApiClient_ConnectionCallbacks java.lang.Class.classForName(Native Method) java.lang.Class.forName(Class.java:324) java.lang.Class.forName(Class.java:285) com.tns.DexFactory.generateDex(DexFactory.java:262) com.tns.DexFactory.resolveClass(DexFactory.java:120) com.tns.ClassResolver.resolveClass(ClassResolver.java:45)

`

My corresponding code is

var GoogleApiClient = com.google.android.gms.common.api.GoogleApiClient; var myConnectionCallbacks = GoogleApiClient.ConnectionCallbacks.extend({ onConnected: function(connectionHint){ var MessageListener = MessageListener.extend({ onFound: function(message){ Log.d("MESSAGE", "Found message :) "); }, onLost: function(message){ Log.d("MESSAGE", "Lost message :( "); } }); var mMessageListener = new MessageListener(); }, onConnectionSuspended: function(){} }); var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); test.addConnectionCallbacks(new myConnectionCallbacks(this));

Maybe I misunderstood the Docs? https://docs.nativescript.org/runtimes/android/generator/extend-class-interface

Edit: Why is there an underscore in the error log after GoogleApiClient?

Any suggestions what I do wrong?

最满意答案

这里的问题是你试图扩展一个错误的接口。 更多信息 - > https://docs.nativescript.org/runtimes/android/generator/extend-class-interface#interfaces

var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); test.addConnectionCallbacks(new com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks({ onConnected: function (connectionHint) { var MessageListener = MessageListener.extend({ onFound: function (message) { console.log(Found message :) "); }, onLost: function (message) { console.log("Lost message :( "); } }); var mMessageListener = new MessageListener(); }, onConnectionSuspended: function () { } }));

只是添加MessageListener是一个只删除.extend的接口

var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); test.addConnectionCallbacks(new com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks({ onConnected: function (connectionHint) { new MessageListener({ onFound: function (message) { console.log(Found message :) "); }, onLost: function (message) { console.log("Lost message :( "); } }); }, onConnectionSuspended: function () { } }));

The problem here is your are trying to extend an interface which is wrong . More info -> https://docs.nativescript.org/runtimes/android/generator/extend-class-interface#interfaces

var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); test.addConnectionCallbacks(new com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks({ onConnected: function (connectionHint) { var MessageListener = MessageListener.extend({ onFound: function (message) { console.log(Found message :) "); }, onLost: function (message) { console.log("Lost message :( "); } }); var mMessageListener = new MessageListener(); }, onConnectionSuspended: function () { } }));

and just incase the MessageListener is an interface the just remove the .extend

var MessagesOptionsBuilder = new com.google.android.gms.nearby.messages.MessagesOptions.Builder().setPermissions(NearbyPermissions.BLE).build(); var test = new GoogleApiClient.Builder(context).addApi(Nearby.MESSAGES_API, MessagesOptionsBuilder); test.addConnectionCallbacks(new com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks({ onConnected: function (connectionHint) { new MessageListener({ onFound: function (message) { console.log(Found message :) "); }, onLost: function (message) { console.log("Lost message :( "); } }); }, onConnectionSuspended: function () { } }));

更多推荐

本文发布于:2023-08-06 21:59:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1456355.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:NativeScript   extend   ClassNotFoundException

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!