我创建了我的应用程序,并且该应用程序在调试模式下正常工作。在混淆了获取代码列表并在 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>;
}