小编Mak*_*aev的帖子

如何使用映射文件对 Android 堆栈跟踪进行反混淆处理

我从崩溃报告系统得到了一个堆栈跟踪,它被混淆了,比如

... 解析失败:Lru/test/c/b/a;...

我有一个映射文件。

如何使用 mapping.txt 对该堆栈跟踪进行反混淆?

obfuscation android proguard deobfuscation

18
推荐指数
2
解决办法
1万
查看次数

在搭载 Android 11 的小米手机上应用通知样式时出现 RemoteServiceException

在没有任何明显原因的情况下,搭载 Android 11 的小米手机开始出现在 crashlytics 日志中。通知发生了一些事情。我们不会做任何太具体的事情,并且在其他 Android 11 设备上一切正常。我无法在受影响的设备上重现此崩溃。可能是什么原因?

第一次崩溃开始出现在 12 月初,并且到 1 月份,数量从每天 10 起迅速增长到 100+

碰撞:

Fatal Exception: android.app.RemoteServiceException
Bad notification(tag=null, id=) posted from package my.application, crashing app(uid=, pid=): Couldn't inflate contentViewsjava.lang.ClassCastException: android.app.Notification$MediaStyle cannot be cast to android.app.Notification$MessagingStyle
Run Code Online (Sandbox Code Playgroud)

通知样式:

    final MediaStyle style = new MediaStyle()
            .setMediaSession(token)
            .setShowActionsInCompactView(PREV_POSITION, PLAY_PAUSE_POSITION, NEXT_POSITION)
            .setCancelButtonIntent(STOP.notificationPending(mContext))
            .setShowCancelButton(true);
    setStyle(style);
Run Code Online (Sandbox Code Playgroud)

android android-notifications android-mediaplayer xiaomi android-notification.mediastyle

10
推荐指数
1
解决办法
577
查看次数

通过主题或样式更改工具栏导航图标的色调或颜色

我可以通过代码在工具栏中设置带有色调的导航图标:

  Toolbar toolbar = findViewById(R.id.biometry_agreement_toolbar);
  Drawable drawable = AppCompatResources.getDrawable(requireContext(), R.drawable.ic_24_close);
  drawable.setColorFilter(ColorGenerator.buildColorFilterByAttr(toolbar.getContext(), R.attr.colorMaskColored));
  toolbar.setNavigationIcon(drawable);
Run Code Online (Sandbox Code Playgroud)

或者我可以在 xml 中设置这样的图标,但在这种情况下我不能设置色调,因为没有属性 navigationIconTint:

<androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:navigationIcon="@drawable/ic_24_close"
            app:titleTextColor="@color/color_primary"
            tools:title="@string/title"/>
Run Code Online (Sandbox Code Playgroud)

是否可以在没有 Java 代码的情况下以某种方式为导航图标设置色调?或将自定义图标设置到工具栏中会清除所有色调和颜色?

我不喜欢从 java 设置图标,因为工具栏初始化没有很好的代码重用。

我尝试了不同的自定义样式,覆盖了 colorControlNormal,但没有运气。

提前致谢

android styling android-theme android-toolbar

6
推荐指数
1
解决办法
4869
查看次数

如何在Kotlin中使用密封类实现ViewHolder

我在此推文中看到了一个有趣的Viewholder实现https://twitter.com/AndroidDev/status/972502799496790018

override fun onBindViewHolder(holder: SealedAdapterViewHolder, position: Int) {
  return when (holder) {
    is HeaderHolder -> holder.displayHeader(items[position])
    is DetailsHolder -> holder.displayDetails(items[position])
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不知道如何实施thouse持有人。而且我没有找到这个技巧的任何例子。

在我的视图持有者中,我必须扩展RecyclerView.ViewHolder,并且必须扩展密封类,以便可以在“ when子句”中使用它。不允许多次骚扰。

这样有可能吗?

聚苯乙烯

原始作者这样写:

您还可以在RecyclerView适配器中使用密封类。它们非常适合ViewHolders-具有一组清晰的类型可以显式分配给每个所有者。用作表达式时,如果所有类型都不匹配,则编译器将出错。

android sealed kotlin android-recyclerview

2
推荐指数
1
解决办法
1187
查看次数