Git Product home page Git Product logo

Comments (6)

liangning121 avatar liangning121 commented on June 24, 2024

请问这个问题解决了么 我现在也是打包混淆之后 类型转换异常

from androidfire.

yuejinsheng avatar yuejinsheng commented on June 24, 2024

混淆没有配好,

from androidfire.

liangning121 avatar liangning121 commented on June 24, 2024

请问哪句混淆配置可以解决啊 我把作者本人的混淆配置都加进去了还是报错

from androidfire.

GuoZhaoHui628 avatar GuoZhaoHui628 commented on June 24, 2024

这个问题解决没,我也碰到了同样的问题,打包安装后 转换错误

 java.lang.ClassCastException: java.lang.Object cannot be cast to com.jaydenxiao.common.base.c

from androidfire.

GuoZhaoHui628 avatar GuoZhaoHui628 commented on June 24, 2024

@yuejinsheng @liangning121 你好!你们的这个问题解决没,是怎么回事,我研究两三天了。。。。还是没搞清楚为什么会出现这种情况,这打包出来的apk反编译我也对比看了下,

 Caused by: java.lang.ClassCastException: java.lang.Object cannot be cast to kstar.mycommon.base.b

这是报错的地方,反编译出来找到这代码如下
qq 20171026110614
根据报错的地方找到代码位置是下面 mModel= TUtil.getT(this,1);

        mPresenter = TUtil.getT(this, 0);
        mModel= TUtil.getT(this,1);

为什么要报错不是上面那行,这代码感觉差不多的额,特别这两个文件BasePresenter BaseModel都已经被混淆了,唯一的区别就是一个是抽象类一个是接口
qq 20171026111117
我看了其他中有关混淆的issue,他们说将TUti可以解决这个问,但是其实这个类的类名已经被混淆了,只是里面的代码没有而已,如下图
qq 20171026111432
这个有点不懂怎样将这个类的内容混淆,只知道怎样keep保持里面的内容不被混淆,网上也没查到。
最主要的问题,这个项目clone下的代码,打包编译出来的apk也是报这个错
好吧 大佬们,这到底什么情况,有知道的麻烦说一声,我真的要被这个玩疯了

from androidfire.

GuoZhaoHui628 avatar GuoZhaoHui628 commented on June 24, 2024

这个问题终于解决了。并不是他们说的将TUtil混淆。本来开启混淆后会无差别的混淆其他代码,只是因为我们对一些保护了才留下来一些没被混淆的代码,所以我就奇怪怎么还能主动混淆其中一个文件,再说如果是这个文件的问题,那么在前面那行代码

 mPresenter = TUtil.getT(this, 0);

就该报错了,怎么提示是下面的问题。再说作者在混淆文件下面配置了反射相关的方法是不被混淆的,这个工具类下面的所有代码都不被混淆。

#---------------------------------4.反射相关的类和方法-----------------------
##对commonutils报下的代码不警告
-dontwarn kstar.mycommon.commonutils.**

-keep class kstar.mycommon.commonutils.** { *; }

#----------------------------------------------------------------------------

所以报错应该是强转两个对象之间的问题。根据这个思路 我将两个对象的代码都保护起来,果然没问题了。我自己的代码如下,可能每个人代码类的结构不一样,反正思路是一样的BaseModel的子类要保护,不能混淆,混淆强转就有问题

#BaseModel类所在的位置
-keep class kstar.mycommon.base.** { *; }
#BaseModel子类,我们业务类所在的位置
-keep class com.kstar.device.ui.login.model.** { *; }

from androidfire.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.