我在实时应用程序中看到此错误,因此我不知道为什么会发生这种情况.我只有这个异常日志(见下文).起初,我以为我将样式editTextBackgroungWhite(见下文)应用到我的XML中的editText,但删除它对问题没有影响.
如果有人能引导我走向正确的方向,我会很高兴的.
PS我无法在我的设备上复制这个bug似乎只是一些三星笔记本系列设备的问题.
<style name="editTextBackgWhite"parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorControlNormal">#ffffff</item>
<item name="colorControlActivated">#ffffff</item>
<item name="colorControlHighlight">#ffffff</item>
</style>
Fatal Exception: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 6: TypedValue{t=0x2/d=0x101009b a=1}
at android.content.res.TypedArray.getColorStateList(TypedArray.java:484)
at android.text.style.TextAppearanceSpan.(TextAppearanceSpan.java)
at android.text.style.TextAppearanceSpan.(TextAppearanceSpan.java)
at android.widget.Editor$SuggestionsPopupWindow$SuggestionInfo.(Editor.java)
at android.widget.Editor$SuggestionsPopupWindow$SuggestionInfo.(Editor.java)
at android.widget.Editor$SuggestionsPopupWindow.initContentView(Editor.java:2995)
at android.widget.Editor$PinnedPopupWindow.(Editor.java)
at android.widget.Editor$SuggestionsPopupWindow.(Editor.java)
at android.widget.Editor.showSuggestions(Editor.java:2229)
at android.widget.Editor$2.run(Editor.java:2109)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Run Code Online (Sandbox Code Playgroud)
这个问题的主要原因似乎是AppCompat库中缺少样式/主题,或者是库中的错误。当使用AppCompatEditText或AppCompatAutoCompleteTextView并且WebView也添加到布局时会发生这种情况(AdMob 广告是 WebView)。它发生在 AppCompat 的多个版本上,例如 23、24、25、26。
在某人在 Github 上制作的一个有用的演示应用程序中可以更清楚地看到:
构建.gradle:
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
...
}
Run Code Online (Sandbox Code Playgroud)
应用程序/build.gradle:
buildToolsVersion '25.0.0'
Run Code Online (Sandbox Code Playgroud)
gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
Run Code Online (Sandbox Code Playgroud)
(从该解决方案在这里)是明确添加都 "colorAccent"与"android:colorAccent"在主AppTheme,在styles.xml:
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
...
}
Run Code Online (Sandbox Code Playgroud)
或者
buildToolsVersion '25.0.0'
Run Code Online (Sandbox Code Playgroud)
这现在将允许出现股票拼写建议弹出窗口,并且不再崩溃。
类似的报告或重复:
使用AutoCompleteTextView时有完全相同的异常.复制真的很艰难,浪费了我两天的时间.
造成这种情况的原因是Google拼写检查器弹出窗口,在某些设备中启用,导致Edittext/AutoCompleteEdittext中的单词下面出现红线并单击它会打开一个拼写建议弹出窗口.根据我的观察,这个弹出窗口在TextInputLayout(带有样式)方面不太顺利,并导致某些设备崩溃(在我的情况下是Moto G播放).您可以通过关闭Google拼写检查程序来验证它,它会正常工作.但真正的解决方案是添加
android:inputType="textNoSuggestions"
以XML格式编辑文本
这会禁用该edittext的拼写检查,其余工作正常.
如果有帮助,请告诉我.
| 归档时间: |
|
| 查看次数: |
10594 次 |
| 最近记录: |