簡體   English   中英

在我的代碼中遇到此錯誤:java.lang.StringIndexOutOfBoundsException:

[英]Facing this error in my Code : java.lang.StringIndexOutOfBoundsException:

這是我的日志

下面列出了錯誤的完整詳細信息:

java.lang.StringIndexOutOfBoundsException: length=0; index=0
    at java.lang.String.charAt(Native Method)
    at android.graphics.Color.parseColor(Color.java:1384)
    at com.chetan.mobchat.Activities.MainActivity$1.onSuccess(MainActivity.java:115)
    at com.chetan.mobchat.Activities.MainActivity$1.onSuccess(MainActivity.java:81)
    at com.google.android.gms.tasks.zzn.run(com.google.android.gms:play-services-tasks@@17.2.0:4)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:257)
    at android.app.ActivityThread.main(ActivityThread.java:8218)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)

這是我的代碼,其中第 81 行和第 115 行有錯誤,任何人都可以幫助我解決此錯誤

代碼:

81 ----

mFirebaseRemoteConfig.fetchAndActivate().addOnSuccessListener(new OnSuccessListener<Boolean>() {
                @Override
                public void onSuccess(Boolean aBoolean) {
    
                    String backgroundImage = mFirebaseRemoteConfig.getString("backgroundImage");
                    Glide.with(MainActivity.this)
                            .load(backgroundImage)
                            .into(binding.backgroundImage);
    
                    /* Toolbar Color */
                    String toolbarColor = mFirebaseRemoteConfig.getString("toolbarColor");
                    String toolBarImage = mFirebaseRemoteConfig.getString("toolbarImage");
                    boolean isToolBarImageEnabled = mFirebaseRemoteConfig.getBoolean("toolBarImageEnabled");
    
    
    
                    if(isToolBarImageEnabled) {
                        Glide.with(MainActivity.this)
                                .load(toolBarImage)
                                .into(new CustomTarget<Drawable>() {
                                    @Override
                                    public void onResourceReady(@NonNull @NotNull Drawable resource, @Nullable @org.jetbrains.annotations.Nullable Transition<? super Drawable> transition) {
                                        getSupportActionBar()
                                                .setBackgroundDrawable(resource);
                                    }
    
                                    @Override
                                    public void onLoadCleared(@Nullable @org.jetbrains.annotations.Nullable Drawable placeholder) {
    
                                    }
                                });
                    } else {
                        getSupportActionBar()
                                .setBackgroundDrawable
                      115--                  (new ColorDrawable(Color.parseColor(toolbarColor)));
                    }
    
                }
            });

第 81 和 115 行標記在上面的代碼中

Color.parseColor(toolbarColor)方法的內部實現有一行代碼如下: long color = Long.parseLong(colorString.substring(1), 16)

由於toolbarColor為空,因此colorString.substring(1)生成StringIndexOutOfBoundsException

要解決此錯誤,請傳遞有效的非空有效toolbarColor

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM