返回列表 发新帖

[BUG反馈] 关于smali代码转成JAVA方法丢失的问题

[复制链接]

34

主题

1476

回帖

5557

积分

硕士生

̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝

Rank: 6Rank: 6

金币
2083
好评
13
信誉
100

考神MT论坛新人MT论坛最佳新人MT论坛帅哥MT论坛活跃会员

发表在  2025-4-23 11:47:20 来自手机  | 显示全部楼层 | 阅读模式  来自 四川
本帖最后由 k520 于 2025-4-23 11:50 编辑

机型:荣耀30
系统:鸿蒙2.0
MT管理器版本:2.18.2
截图



涉及完整smali代码如下
  1. # classes2.dex

  2. .class Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;
  3. .super Lcom/cmnt/yixueku/util/baseutils/g;
  4. .source "ProviderCourseDetailController.java"


  5. # annotations
  6. .annotation system Ldalvik/annotation/EnclosingMethod;
  7.     value = Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;->l(Ljava/lang/String;)V
  8. .end annotation

  9. .annotation system Ldalvik/annotation/InnerClass;
  10.     accessFlags = 0x0
  11.     name = null
  12. .end annotation

  13. .annotation system Ldalvik/annotation/Signature;
  14.     value = {
  15.         "Lcom/cmnt/yixueku/util/baseutils/g<",
  16.         "Lcom/cmnt/yixueku/entity/BaseResponse<",
  17.         "Lcom/cmnt/yixueku/entity/CourseDetailBeans;",
  18.         ">;>;"
  19.     }
  20. .end annotation


  21. # instance fields
  22. .field final synthetic i:Ljava/lang/String;

  23. .field final synthetic j:Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;


  24. # direct methods
  25. .method constructor <init>(Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;Ljava/lang/String;)V
  26.     .registers 3

  27.     .line 1
  28.     iput-object p1, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->j:Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;

  29.     iput-object p2, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->i:Ljava/lang/String;

  30.     invoke-direct {p0}, Lcom/cmnt/yixueku/util/baseutils/g;-><init>()V

  31.     return-void
  32. .end method


  33. # virtual methods
  34. .method public l()V
  35.     .registers 2

  36.     .line 1
  37.     invoke-super {p0}, Lcom/cmnt/yixueku/util/baseutils/g;->l()V

  38.     .line 2
  39.     iget-object v0, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->j:Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;

  40.     invoke-static {v0}, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;->a(Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;)Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/r;

  41.     move-result-object v0

  42.     invoke-interface {v0}, Lcom/cmnt/yixueku/uiView/b;->hideLoadView()V

  43.     return-void
  44. .end method

  45. .method public m(Ljava/lang/String;I)V
  46.     .registers 3

  47.     .line 1
  48.     invoke-super {p0, p1, p2}, Lcom/cmnt/yixueku/util/baseutils/g;->m(Ljava/lang/String;I)V

  49.     .line 2
  50.     iget-object p2, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->j:Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;

  51.     invoke-static {p2}, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;->a(Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;)Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/r;

  52.     move-result-object p2

  53.     invoke-interface {p2, p1}, Lcom/cmnt/yixueku/uiView/b;->showToast(Ljava/lang/String;)V

  54.     return-void
  55. .end method

  56. .method public bridge synthetic r(Ljava/lang/Object;)V
  57.     .registers 2

  58.     .line 1
  59.     check-cast p1, Lcom/cmnt/yixueku/entity/BaseResponse;

  60.     invoke-virtual {p0, p1}, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->w(Lcom/cmnt/yixueku/entity/BaseResponse;)V

  61.     return-void
  62. .end method

  63. .method public w(Lcom/cmnt/yixueku/entity/BaseResponse;)V
  64.     .registers 8
  65.     .annotation system Ldalvik/annotation/Signature;
  66.         value = {
  67.             "(",
  68.             "Lcom/cmnt/yixueku/entity/BaseResponse<",
  69.             "Lcom/cmnt/yixueku/entity/CourseDetailBeans;",
  70.             ">;)V"
  71.         }
  72.     .end annotation

  73.     .line 1
  74.     invoke-virtual {p1}, Lcom/cmnt/yixueku/entity/BaseResponse;->getEntity()Ljava/lang/Object;

  75.     move-result-object p1

  76.     check-cast p1, Lcom/cmnt/yixueku/entity/CourseDetailBeans;

  77.     .line 2
  78.     invoke-virtual {p1}, Lcom/cmnt/yixueku/entity/CourseDetailBeans;->getCourseChapterAndSection()Ljava/util/List;

  79.     move-result-object v0

  80.     .line 3
  81.     invoke-virtual {p1}, Lcom/cmnt/yixueku/entity/CourseDetailBeans;->getQuestStatus()Ljava/lang/String;

  82.     move-result-object v1

  83.     .line 4
  84.     invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

  85.     move-result v2

  86.     const-string v3, "0"

  87.     const/4 v4, 0x1

  88.     if-nez v2, :cond_6b

  89.     const-string v2, "true"

  90.     invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

  91.     move-result v1

  92.     if-eqz v1, :cond_6b

  93.     .line 5
  94.     new-instance v1, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;

  95.     invoke-direct {v1}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;-><init>()V

  96.     .line 6
  97.     iget-object v2, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->i:Ljava/lang/String;

  98.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setCourseId(Ljava/lang/String;)V

  99.     .line 7
  100.     iget-object v2, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->i:Ljava/lang/String;

  101.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setChapterId(Ljava/lang/String;)V

  102.     .line 8
  103.     invoke-virtual {p1}, Lcom/cmnt/yixueku/entity/CourseDetailBeans;->getCourseName()Ljava/lang/String;

  104.     move-result-object v2

  105.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setName(Ljava/lang/String;)V

  106.     const-string v2, "课程考试"

  107.     .line 9
  108.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setChapterName(Ljava/lang/String;)V

  109.     .line 10
  110.     invoke-interface {v0}, Ljava/util/List;->size()I

  111.     move-result v2

  112.     add-int/2addr v2, v4

  113.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setSort(I)V

  114.     .line 11
  115.     invoke-virtual {v1, v3}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setQuestStatus(Ljava/lang/String;)V

  116.     .line 12
  117.     new-instance v2, Ljava/util/ArrayList;

  118.     invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V

  119.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setChapterSectionVos(Ljava/util/List;)V

  120.     .line 13
  121.     invoke-virtual {v1, v4}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setCourseChapter(Z)V

  122.     .line 14
  123.     invoke-virtual {p1}, Lcom/cmnt/yixueku/entity/CourseDetailBeans;->isCompleteQuestStatus()Z

  124.     move-result v2

  125.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setCompleteQuestStatus(Z)V

  126.     .line 15
  127.     invoke-virtual {p1}, Lcom/cmnt/yixueku/entity/CourseDetailBeans;->getCompleteQuestNum()I

  128.     move-result v2

  129.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setCompleteQuestNum(I)V

  130.     .line 16
  131.     invoke-virtual {p1}, Lcom/cmnt/yixueku/entity/CourseDetailBeans;->isJoinExamStatus()Ljava/lang/String;

  132.     move-result-object v2

  133.     invoke-virtual {v1, v2}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setJoinExamStatus(Ljava/lang/String;)V

  134.     .line 17
  135.     invoke-virtual {v1, v4}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->setExpand(Z)V

  136.     .line 18
  137.     invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

  138.     .line 19
  139.     :cond_6b
  140.     invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

  141.     move-result-object v0

  142.     :goto_6f
  143.     invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

  144.     move-result v1

  145.     if-eqz v1, :cond_97

  146.     invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

  147.     move-result-object v1

  148.     check-cast v1, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;

  149.     .line 20
  150.     invoke-virtual {v1}, Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;->getQuestStatus()Ljava/lang/String;

  151.     move-result-object v2

  152.     .line 21
  153.     invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

  154.     move-result v5

  155.     if-nez v5, :cond_8d

  156.     invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

  157.     move-result v2

  158.     if-eqz v2, :cond_8d

  159.     const/4 v2, 0x1

  160.     goto :goto_8e

  161.     :cond_8d
  162.     const/4 v2, 0x0

  163.     :goto_8e
  164.     if-nez v2, :cond_91

  165.     goto :goto_6f

  166.     .line 22
  167.     :cond_91
  168.     iget-object v2, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->j:Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;

  169.     invoke-static {v2, v1}, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;->c(Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;Lcom/cmnt/yixueku/entity/CourseDetailBeans$ChapterWrapperBean;)V

  170.     goto :goto_6f

  171.     .line 23
  172.     :cond_97
  173.     iget-object v0, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->j:Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;

  174.     invoke-static {v0}, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;->a(Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m;)Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/r;

  175.     move-result-object v0

  176.     iget-object v1, p0, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/m$a;->i:Ljava/lang/String;

  177.     invoke-interface {v0, p1, v1}, Lcom/cmnt/yixueku/ui/activity/contentprovider/course/detail/r;->E(Lcom/cmnt/yixueku/entity/CourseDetailBeans;Ljava/lang/String;)V

  178.     return-void
  179. .end method
复制代码


处理后JAVA代码如下
  1. //
  2. // Decompiled by Jadx - 879ms
  3. //
  4. package com.cmnt.yixueku.ui.activity.contentprovider.course.detail;

  5. import android.text.TextUtils;
  6. import com.cmnt.yixueku.entity.BaseResponse;
  7. import com.cmnt.yixueku.entity.CourseDetailBeans;
  8. import com.cmnt.yixueku.util.baseutils.g;
  9. import java.util.ArrayList;
  10. import java.util.List;

  11. class m$a extends g<BaseResponse<CourseDetailBeans>> {
  12.     final String i;
  13.     final m j;

  14.     m$a(m mVar, String str) {
  15.         this.j = mVar;
  16.         this.i = str;
  17.     }

  18.     public void l() {
  19.         super.l();
  20.         m.a(this.j).hideLoadView();
  21.     }

  22.     public void m(String str, int i) {
  23.         super.m(str, i);
  24.         m.a(this.j).showToast(str);
  25.     }

  26.     public void r(BaseResponse<CourseDetailBeans> baseResponse) {
  27.         CourseDetailBeans courseDetailBeans = (CourseDetailBeans) baseResponse.getEntity();
  28.         List<CourseDetailBeans.ChapterWrapperBean> courseChapterAndSection = courseDetailBeans.getCourseChapterAndSection();
  29.         String questStatus = courseDetailBeans.getQuestStatus();
  30.         if (!TextUtils.isEmpty(questStatus) && questStatus.equals("true")) {
  31.             CourseDetailBeans.ChapterWrapperBean chapterWrapperBean = new CourseDetailBeans.ChapterWrapperBean();
  32.             chapterWrapperBean.setCourseId(this.i);
  33.             chapterWrapperBean.setChapterId(this.i);
  34.             chapterWrapperBean.setName(courseDetailBeans.getCourseName());
  35.             chapterWrapperBean.setChapterName("课程考试");
  36.             chapterWrapperBean.setSort(courseChapterAndSection.size() + 1);
  37.             chapterWrapperBean.setQuestStatus("0");
  38.             chapterWrapperBean.setChapterSectionVos(new ArrayList());
  39.             chapterWrapperBean.setCourseChapter(true);
  40.             chapterWrapperBean.setCompleteQuestStatus(courseDetailBeans.isCompleteQuestStatus());
  41.             chapterWrapperBean.setCompleteQuestNum(courseDetailBeans.getCompleteQuestNum());
  42.             chapterWrapperBean.setJoinExamStatus(courseDetailBeans.isJoinExamStatus());
  43.             chapterWrapperBean.setExpand(true);
  44.             courseChapterAndSection.add(chapterWrapperBean);
  45.         }
  46.         for (CourseDetailBeans.ChapterWrapperBean chapterWrapperBean2 : courseChapterAndSection) {
  47.             String questStatus2 = chapterWrapperBean2.getQuestStatus();
  48.             if (!TextUtils.isEmpty(questStatus2) && questStatus2.equals("0")) {
  49.                 m.c(this.j, chapterWrapperBean2);
  50.             }
  51.         }
  52.         m.a(this.j).E(courseDetailBeans, this.i);
  53.     }
  54. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

36

回帖

119

积分

小学生

Rank: 2

金币
31
好评
0
信誉
100
发表于 2025-4-30 19:44:27 来自手机  | 显示全部楼层  来自 山东
支持一下
回复

使用道具 举报

54

主题

3590

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
795
好评
190
信誉
180

MT论坛新人MT论坛最佳新人MT论坛帅哥考神MT论坛活跃会员挂机大佬

发表于 2025-4-23 12:45:26 来自手机  | 显示全部楼层  来自 陕西
r方法只调用w方法,转java后w被优化r内。不影响修改,换一个不会优化的引擎也行。
回复

使用道具 举报

23

主题

435

回帖

1700

积分

高中生

Rank: 4

金币
1376
好评
0
信誉
100

考神

发表于 2025-4-23 12:42:08 来自手机  | 显示全部楼层  来自 广东
试了下 引擎换成 JdCore 就没问题了
估计是 bug 吧
回复

使用道具 举报

22

主题

2223

回帖

8288

积分

硕士生

小白

Rank: 6Rank: 6

金币
2938
好评
40
信誉
106

MT论坛新人考神MT论坛帅哥

QQ
发表于 2025-4-23 12:35:25 来自手机  | 显示全部楼层  来自 山东
切换引擎
回复

使用道具 举报

34

主题

1476

回帖

5557

积分

硕士生

̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝̝

Rank: 6Rank: 6

金币
2083
好评
13
信誉
100

考神MT论坛新人MT论坛最佳新人MT论坛帅哥MT论坛活跃会员

发表于 2025-4-23 11:50:51 来自手机  | 显示全部楼层  来自 四川
坐个沙发看看
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表