使用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: 12158
    java.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


solution:
在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:
implementation 'com.google.guava:guava:29.0-android'
PS:上面29.0根據你的版本自己更新.

留言

這個網誌中的熱門文章

最爛的銀行服務-玉山銀行

Mark App Design Apps - Terms and Privacy Policy (服務條款,隱私權政策)

SMR疊瓦式hdd致命缺陷被解決????!!!

ios app 上架時app icon要注意事項

更改google drive預設存放目錄位置Change Google Drive Default Folder Location in Windows

google play 正式發布前測試報告...非常好用.

舊有app在Android 12 閃退問題& app Splash screens

app bundle and bundletool. 關於aab安裝問題

關於google play console app應用程式簽署

Google Play badge徽章產生器