- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的应用程序中,我使用渐变背景。我曾经用我的手机在 Lollipop 上调试它,一切正常。今天我将我的手机 (LG G4) 更新为棉花糖,现在当应该绘制渐变时,应用程序崩溃并显示以下堆栈跟踪:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.max.lucas, PID: 28163
java.lang.IllegalArgumentException: color and position arrays must be of equal length
at android.graphics.LinearGradient.<init>(LinearGradient.java:58)
at android.graphics.drawable.GradientDrawable.ensureValidRect(GradientDrawable.java:942)
at android.graphics.drawable.GradientDrawable.draw(GradientDrawable.java:516)
at android.view.View.getDrawableRenderNode(View.java:16451)
at android.view.View.drawBackground(View.java:16387)
at android.view.View.draw(View.java:16197)
at android.view.View.updateDisplayListIfDirty(View.java:15202)
at android.view.View.draw(View.java:15976)
at android.view.ViewGroup.drawChild(ViewGroup.java:3611)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3401)
at android.view.View.updateDisplayListIfDirty(View.java:15197)
at android.view.View.draw(View.java:15976)
at android.view.ViewGroup.drawChild(ViewGroup.java:3611)
at android.support.v7.widget.RecyclerView.drawChild(RecyclerView.java:3588)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3401)
at android.view.View.draw(View.java:16209)
at android.support.v7.widget.RecyclerView.draw(RecyclerView.java:3097)
at android.view.View.updateDisplayListIfDirty(View.java:15202)
at android.view.View.draw(View.java:15976)
at android.view.ViewGroup.drawChild(ViewGroup.java:3611)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3401)
at android.view.View.draw(View.java:16209)
at android.support.design.internal.ScrimInsetsFrameLayout.draw(ScrimInsetsFrameLayout.java:82)
at android.view.View.updateDisplayListIfDirty(View.java:15202)
at android.view.View.draw(View.java:15976)
at android.view.ViewGroup.drawChild(ViewGroup.java:3611)
at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1229)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3401)
at android.view.View.draw(View.java:16209)
at android.view.View.updateDisplayListIfDirty(View.java:15202)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3595)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3575)
at android.view.View.updateDisplayListIfDirty(View.java:15162)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3595)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3575)
at android.view.View.updateDisplayListIfDirty(View.java:15162)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3595)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3575)
at android.view.View.updateDisplayListIfDirty(View.java:15162)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3595)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3575)
at android.view.View.updateDisplayListIfDirty(View.java:15162)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3595)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3575)
at android.view.View.updateDisplayListIfDirty(View.java:15162)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2655)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2469)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2098)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1125)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6100)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main
我注意到崩溃仅发生在渐变的属性引用 AppTheme 值时,如下所示:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:startColor="?attr/colorPrimary"
android:centerColor="#000066"
android:endColor="?attr/colorPrimary"
android:type="linear"
android:angle="135"/>
</shape>
具有固定值的渐变效果很好:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:startColor="#3F51B5"
android:centerColor="#4CAF50"
android:endColor="#3F51B5"
android:type="linear"
android:angle="135"/>
</shape>
是什么原因导致的,我该如何解决?
最佳答案
一个可能迟到的答案,但可能对 future 的开发者有所帮助。对于那些类型的渐变文件,总是力求使用相同的颜色格式。例如,如果您使用的是十六进制值,请使用 in all
<gradient
android:startColor="#3F51B5"
android:centerColor="#4CAF50"
android:endColor="#3F51B5"/>
你们中的一些人正在引用主题颜色,
<gradient
android:startColor="?attr/colorPrimary"
android:centerColor="?attr/colorAccent"
android:endColor="?attr/colorPrimary"/>
关于android - 渐变在 Android M 上因 IllegalArgumentException 而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35363335/
在使用客户端应用程序和OAuth2授权服务器时出现错误。我用的是Spring。我已经设置了授权服务器、资源服务器和客户端。使用cURL时,授权服务器和资源服务器工作正常。但是,当我为客户端编写设置(包
在使用客户端应用程序和OAuth2授权服务器时出现错误。我用的是Spring。我已经设置了授权服务器、资源服务器和客户端。使用cURL时,授权服务器和资源服务器工作正常。但是,当我为客户端编写设置(包
我希望你能找到我的文字,因为我真的对我的项目感到困惑,因为应用程序不能安装在模拟器中。我希望你的建议和指导。这是运行应用程序时的日志记录。RegisterViewModel.kt。密封的类资源.kt。
我正在尝试制作按钮,单击它们时会播放声音。但我有一个麻烦。我实在搞不清楚。这是我的代码: import javafx.application.Application; import javafx.ev
我正在查看一些遗留代码,发现一个部分导致我得到“比较方法违反了其一般契约!”错误。我知道这个错误是代码不具有传递性的结果,但我不完全理解如何正确修复它。 这是导致错误的代码。 private void
运行以下方法时,我不断收到 IllegalArgumentException: public int randomize(ArrayList list){ Random rdm = new R
我想给 Jenkins 添加一个新的 slave。当我遵循 Jenkins UI 时,它给了我下面的命令 java -jar agent.jar -jnlpUrl http:///computer//
我正在使用运行时反射来加载一个包含以下两个方法的类: public static void foo(int[] args) { System.out.print("foo invoked: "
我已经使用以下查询来匹配所有文档 { "query": { "custom_score": { "query": { "query_string": {
我有这个命令: list.stream() .filter(e -> ...) .sorted(comparatorShuffle()) .findAny() .orE
我收到以下运行时错误: checkParameterIsNotNull, parameter oneClickTokens at com.info.app.fragments.Fragmen
我有两个列表: (def xxa ["olp" "xyz"]) (def xxb ["ulove" "alove" "holp" "sholp"]) 还有一个函数尝试获取第一个列表的元素,这些元素是第
在我的代码中,我在向服务器执行请求的行中捕获了 IllegalArgumentException(索引 85 处查询中的非法字符)。使用 was build as patter 命令,另一个任务正确完
我试图将 String[] 放入 jsonObject 并收到以下错误 java.lang.IllegalArgumentException: Invalid type of value. Type:
我过去的一个试卷问题要求我修改一个方法,以导致发生 IllegalArgumentException。 该方法仅涉及从银行帐户余额中提取资金 这是执行此操作的方法。 公共(public)无效提款(双倍
我这里遇到了一点问题。我想弄清楚如何捕获 IllegalArgumentException。对于我的程序,如果用户输入负整数,程序应该捕获 IllegalArgumentException 并询问用户
每当插件尝试运行此延迟的任务时,我都会收到“ IllegalArgumentException:插件不能为空”错误: Bukkit.getServer().getScheduler().sched
我有这个命令: list.stream() .filter(e -> ...) .sorted(comparatorShuffle()) .findAny() .orE
我在更改应用程序中的场景时遇到问题,看起来像 Main screen > Login screen 我在主文件中将屏幕存储为 hashmap一切都很好,直到我从登录屏幕返回到主屏幕并想再次加载登录屏幕
我在这里缺少什么? 我得到异常:java.lang.IllegalArgumentException:对象不是声明类的实例 public boolean onSave(Object entity,Se
我是一名优秀的程序员,十分优秀!