0

我创建了我的应用程序,并且该应用程序在调试模式下正常工作。在混淆了获取代码列表并在 recyclerview 中显示的应用程序的一部分在此片段中无法正常工作后,我将获得代码列表-代码是我的可打包模型类-但是主线程锁定并且没有任何作用我试图防止混淆这个类,但它仍然无法正常工作。我无法调试已发布的应用程序以查找问题,请帮助我查找问题或调试已发布的 apk

这是我的代码:

代码模型类:

 class Codes(
        @SerializedName("id")
        var id: String?,
        @SerializedName("title")
        var title: String?,
        @SerializedName("text")
        var text: String?,
        @SerializedName("codes")
        var codes: String?,
        @SerializedName("date")
        var date: String?,
        @SerializedName("codeId")
        var codeId: String?,
        @SerializedName("point")
        var point: Int,
        @SerializedName("name")
        var name: String?,
        @SerializedName("family")
        var family: String?,
        @SerializedName("image")
        var image: String?,
        @SerializedName("jensiat")
        var jensiat: Int
    ) : Parcelable {
        constructor(parcel: Parcel) : this(
            parcel.readString(),
            parcel.readString(),
            parcel.readString(),
            parcel.readString(),
            parcel.readString(),
            parcel.readString(),
            parcel.readInt(),
            parcel.readString(),
            parcel.readString(),
            parcel.readString(),
            parcel.readInt()
        ) {
        }

        override fun writeToParcel(parcel: Parcel, flags: Int) {
            parcel.writeString(id)
            parcel.writeString(title)
            parcel.writeString(text)
            parcel.writeString(codes)
            parcel.writeString(date)
            parcel.writeString(codeId)
            parcel.writeInt(point)
            parcel.writeString(name)
            parcel.writeString(family)
            parcel.writeString(image)
            parcel.writeInt(jensiat)
        }

        override fun describeContents(): Int {
            return 0
        }

        companion object CREATOR : Parcelable.Creator<Codes> {
            override fun createFromParcel(parcel: Parcel): Codes {
                return Codes(parcel)
            }

            override fun newArray(size: Int): Array<Codes?> {
                return arrayOfNulls(size)
            }
        }
    }

代码片段(我得到列表并在recyclerview中显示):

 viewModel.getAllCodes(SORT_POPULAR).observe(this, Observer {
                    myList = it
                    Utils.customAnimation(recycler, animation = Techniques.Landing)
                    codeAdapter = CodeAdapter(context!!, it) { codeId, position ->
                        Log.i("LOG","code id:$codeId and position is: $position")
                        var transaction = activity!!.supportFragmentManager.beginTransaction()
                        lastPosition = position
                        var detailCodeFragment = DetailCodeFragment {
                            codeAdapter.changePoint(it)
                        }
                        var selectedCode: Codes? = null
                        for (i in 0 until myList.size) {
                            var id = myList[i].codeId
                            if (id == codeId) {
                                selectedCode = myList[i]
                            }
                        }
                        var bundle = Bundle()
                        bundle.putParcelable("codes", selectedCode)
                        bundle.putInt("position", lastPosition)
                        detailCodeFragment.arguments = bundle
                        Utils.customAnimation(
                            activity!!.findViewById(R.id.main_fragment_frame),
                            animation = Techniques.SlideInRight
                        )
                        transaction.add(R.id.main_fragment_frame, detailCodeFragment)
                        transaction.addToBackStack(null)
                        transaction.commit()
                    }
                    recycler.adapter = codeAdapter
                    loadingFragme.visibility = View.GONE
                })
            }

保护规则:

 -keepattributes Signature

    # For using GSON @Expose annotation
    -keepattributes *Annotation*

    # Gson specific classes
    -keep class sun.misc.Unsafe { *; }
    #-keep class com.google.gson.stream.** { *; }

    # Application classes that will be serialized/deserialized over Gson
    -keep class com.google.gson.examples.android.model.** { *; }

    ##---------------End: proguard configuration for Gson ----------
    -keepclassmembers class * implements android.os.Parcelable {
          public static final android.os.Parcelable$Creator *;
       }
    -keepclassmembers class * implements android.os.Parcelable {
      public static final <fields>;
    }
4

0 回答 0