Error:Uncaught translation error: com.android.dx.cf.code.SimException的一种情况

AndroidStudio 报的异常信息

  • Error:Uncaught translation error: com.android.dx.cf.code.SimException: local variable type mismatch: attempt to set or access a value of type java.lang.Object using a local variable of type int. This is symptomatic of .class transformation tools that ignore local variable information.

最近忙里偷闲学习Kotlin,在我将一个项目里的自定义View转成kotlin代码时,没有报错,但是在编译运行的时候这个异常就出现了,找了好久,stackoverflow上的都是和混淆有关的,和我这八竿子打不着,只能逐句代码debug下面是在编译运行时期出现错误的代码

        //这里是用Kotlin插件直接从Java代码转到Kotlin的
        //编译运行时有错
        var leftx :Int
        var rightx:Int
        var mCurrentPageShadow: GradientDrawable
        if (mIsRTandLB) {
            leftx = mBezierControl1.x.toInt()
            rightx = mBezierControl1.x.toInt() + 25
            mCurrentPageShadow = mFrontShadowDrawableVLR
        } else {
            leftx = (mBezierControl1.x - 25).toInt()
            rightx = mBezierControl1.x.toInt() + 1
            mCurrentPageShadow = mFrontShadowDrawableVRL
        }

正确姿势

        //这里进行初始化
        var leftx =0
        var rightx=0
        var mCurrentPageShadow: GradientDrawable
        if (mIsRTandLB) {
            leftx = mBezierControl1.x.toInt()
            rightx = mBezierControl1.x.toInt() + 25
            mCurrentPageShadow = mFrontShadowDrawableVLR
        } else {
            leftx = (mBezierControl1.x - 25).toInt()
            rightx = mBezierControl1.x.toInt() + 1
            mCurrentPageShadow = mFrontShadowDrawableVRL
        }

因为网上这样的例子好少,所以才将这个错误记录下来,当然这里只是提供一个参考,希望对大家有所帮助!!!

拼搏在技术道路上的一只小白And成长之路

你可能感兴趣的:(android,异常,android)