2017-08-03 47 views
6

我得到這個錯誤,我該如何解決它?java.lang.InternalError Android

java.lang.InternalError: 
    at java.lang.Thread.nativeCreate (Native Method) 
    at java.lang.Thread.start (Thread.java:1063) 
    at java.util.concurrent.ThreadPoolExecutor.addWorker (ThreadPoolExecutor.java:920) 
    at java.util.concurrent.ThreadPoolExecutor.processWorkerExit (ThreadPoolExecutor.java:988) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1130) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587) 
    at java.lang.Thread.run (Thread.java:818) 

用戶是給我一些信息是這個:

java.lang.StringIndexOutOfBoundsException: length=0; regionStart=0; regionLength=1 
at java.lang.String.startEndAndLength(String.java:298) 
at java.lang.String.substring(String.java:1087) 
+16

第1步。發佈足夠的代碼來重現問題。 –

+0

這是不可能的,我從播放控制檯錯誤中得到這個錯誤。這是一個具有千行的應用程序@RoddyoftheFrozenPeas – Dahnark

+1

看起來您的線程池無法創建新線程。你的最大線程池大小是多少?您嘗試創建多少個線程/池? –

回答

1

StringIndexOutOfBoundsException異常只是說,有人試圖撥打substring(0, 1)上一個空字符串。如果你仔細觀察棧跟蹤,這是來自你的代碼嗎?如果是這樣,那麼只需在調用substring之前檢查並確保字符串不爲空。

至於Thread.nativeCreate,你是否有一些跡象表明它與其他StringIndexOutOfBoundsException異常有關?我不會假設,因爲你沒有提供關於他們關係的任何信息。 ThreadPoolExecutor.addWorker失敗的最可能原因是資源耗盡,或者耗盡內存或設備上允許的線程用盡。檢查您是如何獲取和配置您正在使用支票的ThreadPoolExecutor,以查看您是否可能超出其參數MaximumPoolSizeLargestPoolSize

+0

那麼,我實現了crashlytics(感謝@benp。因爲我可以選擇他的線程)。在未來的版本中,我會得到更精確的報告,我會再次來到這裏......因爲我現在只有Play Console的這些信息(幾乎沒有) – Dahnark