使用Appcompat要注意事項: 有些程式舊版android上當機,而新版android 10不會當機
issue 1: colors.xml裡面 Primary color不能有alpha值
05-11 19:13:53.406 12158-12158/xyz.markapp.javaquiz E/AndroidRuntime: FATAL EXCEPTION: main
Process: xyz.markapp.javaquiz, PID: 12158java.lang.RuntimeException: Unable to start activity ComponentInfo{xyz.markapp.javaquiz/xyz.markapp.javaquiz.StartActivity}: java.lang.RuntimeException: A TaskDescription's primary color should be opaque
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2440)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2500)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1350)
at android.os.Handler.dispatchMessage(Handler.java:102)
solution:
You can not use alfa in primary color. The primary color has to be opaque.
Change:
<item name="colorPrimaryDark">#4DFF9800</item>
<item name="colorPrimary">#4D607D8B</item>
To
<item name="colorPrimaryDark">#FF9800</item>
<item name="colorPrimary">#607D8B</item>
>> 就是說要注意colors.xml裡面 Primary color不能有alpha值,不然馬上就在舊版android上當機,而新版android 10不會當機.這就是為啥使用者評分APP都留一個星的原因.
<color name="colorPrimary">#024E69</color>
<color name="colorPrimaryDark">#051D60</color>
<color name="colorAccent">#D82069</color>
----------------------------
issue 2: 使用RX時也是會發生同樣情況,在舊版android上當機,而新版android 10不會當機.
ps: Guava: Google Core Libraries for Java, 現在app很多都需要加上此Guava library.不然會有一堆莫名Warning...
05-11 19:16:37.664 12824-12900/xyz.markapp.javaquiz E/AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-2
Process: xyz.markapp.javaquiz, PID: 12824
io.reactivex.exceptions.UndeliverableException: java.lang.NoClassDefFoundError: com.google.common.base.CharMatcher
at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NoClassDefFoundError: com.google.common.base.CharMatcher
Process: xyz.markapp.javaquiz, PID: 12824
io.reactivex.exceptions.UndeliverableException: java.lang.NoClassDefFoundError: com.google.common.base.CharMatcher
at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:154)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NoClassDefFoundError: com.google.common.base.CharMatcher
solution:
在AndroidStudio下使用guava報的異常,有的Library能用有的不能用,
原來是我用錯library了, 不能用
在AndroidStudio下使用guava報的異常,有的Library能用有的不能用,
原來是我用錯library了, 不能用
implementation 'com.google.guava:guava:29.0-jre'
Use the below dependency to fix the issue
To add a dependency using Gradle,use the following:
To add a dependency using Gradle,use the following:
implementation 'com.google.guava:guava:29.0-android'
PS:上面29.0根據你的版本自己更新.
留言
張貼留言