【问题标题】:Android java.lang.IllegalArgumentException "Invalid primitive conversion from long to int" Exception just in release buildAndroid java.lang.IllegalArgumentException“从long到int的无效原始转换”异常仅在发布版本中
【发布时间】:2022-01-17 14:31:47
【问题描述】:

我正在使用 kotlin 开发一个 android 应用程序,到目前为止一切都很好,因为我在某些 android 设备上遇到了 java.lang.IllegalArgumentException: Invalid primitive conversion from long to int 异常。

该异常仅在应用程序的发布版本中发生,不幸的是,我不知道如何调试或正确分析堆栈跟踪以了解确切的问题。

堆栈跟踪如下:

java.lang.IllegalArgumentException: Invalid primitive conversion from long to int
    at java.lang.reflect.Field.getInt(Field.java)
    at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:946)
    at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360)
    at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1054)
    at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384)
    at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
    at android.os.Parcel.writeSerializable(Parcel.java:1463)
    at android.os.Parcel.writeValue(Parcel.java:1416)
    at android.os.Parcel.writeArrayMapInternal(Parcel.java:686)
    at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1376)
    at android.os.Bundle.writeToParcel(Bundle.java:1079)
    at android.os.Parcel.writeBundle(Parcel.java:711)
    at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3216)
    at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3496)
    at android.os.Handler.handleCallback(Handler.java:742)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:157)
    at android.app.ActivityThread.main(ActivityThread.java:5653)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:746)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)

任何帮助将不胜感激。

【问题讨论】:

  • 可以分享代码吗?
  • 你能附上java文件吗,它看起来像一个java错误,可能在java代码的某个地方,它试图以错误的方式int cast a long。
  • @SujalKumar 不知道是哪部分代码导致问题分享出来。
  • @moghaf 如果你附加你的 kotlin 类会很有帮助,如果没有看到任何代码就很难提供帮助。
  • @SujalKumar 您禁用 proguard 的解决方案导致我一一删除 proguard 行(在库排除没有解决问题之后)以测试它是否开始工作并且是的它工作。谢谢。

标签: java android kotlin


【解决方案1】:

对于可能遇到此问题的任何人,就我而言,已通过从 proguard-rules.pro 文件中删除 -overloadaggressively 来解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-06
    • 2019-01-03
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多