我正在尝试将Kommunicate聊天机器人集成到我的Android应用程序中。在我用UserId创建了KMUser并尝试使用Kommunicate.login()登录后,它在onFailure()函数中给出了IllegalArgumentException。
此异常仅在发布版本中发生,但在调试版本中不会发生。
我尝试过在KMUser中交换数据,但没有帮助。
下面是代码片段。
Kommunicate.init(this@HomeActivity, APP_ID)
if (!(mHomeViewModel?.dbProfileResponseModel?.contactNum.isNullOrEmpty())) {
kmUser.userId = mHomeViewModel?.dbProfileResponseModel?.contactNum
} else {
kmUser = Kommunicate.getVisitor()
}
if (!(mHomeViewModel?.dbProfileResponseModel?.email.isNullOrEmpty())) {
kmUser.email = mHomeViewModel?.dbProfileResponseModel?.email
}
kmUser.applicationId = APP_IDKommunicate.login(this@HomeActivity, kmUser, object : KMLoginHandler {
override fun onSuccess(registrationResponse: RegistrationResponse?, context: Context?) {
val botIds = arrayListOf<String>()
botIds.add("beekun-yx526")
KmConversationBuilder(this@HomeActivity)
.setSingleConversation(false)
.setBotIds(botIds)
.setKmUser(kmUser)
.launchConversation(object : KmCallback {
override fun onSuccess(message: Any) {
progressDialog.dismiss()
}
override fun onFailure(error: Any) {
progressDialog.dismiss()
}
})
}
override fun onFailure(registrationResponse: RegistrationResponse?, exception: Exception?) {
if (progressDialog != null && progressDialog.isShowing) {
progressDialog.dismiss()
}
createLoginErrorDialog(registrationResponse, exception)
}
})这是引发的异常。
W/System.err: java.lang.IllegalArgumentException: class c.b.g.a declares multiple JSON fields named a
W/System.err: at com.google.gson.b.a.i.a(ReflectiveTypeAdapterFactory.java:172)
W/System.err: at com.google.gson.b.a.i.a(ReflectiveTypeAdapterFactory.java:102)
W/System.err: at com.google.gson.Gson.a(Gson.java:458)
W/System.err: at com.google.gson.Gson.a(Gson.java:696)
W/System.err: at com.google.gson.Gson.a(Gson.java:683)
W/System.err: at com.google.gson.Gson.b(Gson.java:638)
W/System.err: at com.google.gson.Gson.b(Gson.java:618)
W/System.err: at com.applozic.mobicomkit.api.a.a.a.a(RegisterUserClientService.java:100)
W/System.err: at c.b.a.i.a(KmUserLoginTask.java:62)
W/System.err: at c.b.a.i.doInBackground(KmUserLoginTask.java:24)
W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:334)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:246)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
W/System.err: at java.lang.Thread.run(Thread.java:764)请帮我解决这个问题。
发布于 2019-12-09 18:22:30
这不是构建风格的问题,您可能已经为发布版本启用了proguard,但没有在proguard-rules.pro文件中添加它们的proguard规则。
签出文档以在proguard文件中添加规则:https://docs.kommunicate.io/docs/android-installation#building-with-proguard
https://stackoverflow.com/questions/58705250
复制相似问题