我正在使用此库: com.github.sephiroth74:android-target-tooltip:2.0.4 用于显示工具提示。我支持的最低API级别为19(Android 4.4+),但是该库在ZenFone移动设备上使用Android 4.4.2和5.0的用户崩溃。带有崩溃日志:
Fatal Exception: java.lang.RuntimeException
Failed to resolve attribute at index 96
Fatal Exception: java.lang.RuntimeException
Failed to resolve attribute at index 96
android.content.res.TypedArray.getcolor (TypedArray.java:401)
androidx.appcompat.widget.AppCompatTextView.<init> (AppCompatTextView.java:79)
it.sephiroth.android.library.xtooltip.Tooltip.preparePopup (Tooltip.kt:309)
it.sephiroth.android.library.xtooltip.Tooltip.show (Tooltip.kt:624)
com.companyName.view.activity.shoptransactionBrowser.showGreenBar (shoptransactionBrowser.java:1192)
com.companyName.view.activity.shoptransactionBrowser.activateFrame (shoptransactionBrowser.java:677)
com.companyName.view.activity.shoptransactionBrowser.access$1100 (shoptransactionBrowser.java:106)
com.companyName.view.activity.shoptransactionBrowser$2.onPageFinished (shoptransactionBrowser.java:610)
N6.b (PG:15)
ro.handleMessage (PG:43)
库链接:https://github.com/sephiroth74/android-target-tooltip
这是我从发生崩溃的代码中调用它的方式:
Tooltip infoTooltip = new Tooltip.Builder(this)
.overlay(false)
.anchor(top_panel_container,false)
.text(getResources().getString(R.string.active_tooltip_title))
.maxWidth(tooltipWidth)
.arrow(true)
.closePolicy(ClosePolicy.Companion.getTOUCH_INSIDE_NO_CONSUME()) .floatingAnimation(Tooltip.Animation.Companion.getSLOW())
.showDuration(5000)
.styleId(R.style.ToolTipAltGreenStyle)
.create();
infoTooltip.show(top_panel_container,Tooltip.Gravity.BOTTOM,true);
这是我的style.xml文件:
<style name="ToolTipAltGreenStyle" parent="ToolTipLayoutDefaultStyle">
<item name="ttlm_padding">16dp</item>
<item name="ttlm_backgroundColor">@color/re_green</item>
<item name="ttlm_cornerRadius">6dp</item>
<item name="ttlm_arrowRatio">1.2</item>
<item name="ttlm_overlayStyle">@style/ToolTipOverlayAltStyle</item>
<item name="ttlm_animationStyle">@style/ToolTipAltAnimation</item>
<item name="ttlm_textStyle">@style/ToolTipAltTextStyle</item>
</style>
<style name="ToolTipAltRedStyle" parent="ToolTipLayoutDefaultStyle">
<item name="ttlm_padding">16dp</item>
<item name="ttlm_backgroundColor">@color/re_red</item>
<item name="ttlm_cornerRadius">6dp</item>
<item name="ttlm_arrowRatio">1.2</item>
<item name="ttlm_overlayStyle">@style/ToolTipOverlayAltStyle</item>
<item name="ttlm_animationStyle">@style/ToolTipAltAnimation</item>
<item name="ttlm_textStyle">@style/ToolTipAltTextStyle</item>
</style>
<style name="ToolTipAltTextStyle" parent="ToolTipTextStyle">
<item name="android:textColor">@android:color/white</item>
</style>
<style name="ToolTipOverlayAltStyle" parent="ToolTipOverlayDefaultStyle">
<item name="android:color">?attr/coloraccent</item>
<item name="android:alpha">0.3</item>
</style>
<style name="ToolTipAltAnimation">
<item name="android:windowEnterAnimation">@anim/custom_anim_enter</item>
<item name="android:windowExitAnimation">@anim/custom_anim_exit</item>
</style>