parkingwang / vehicle-keyboard-android

停车王车牌键盘-Android
Other
658 stars 148 forks source link

华为p20 pro 手机报错 #28

Open prospernew opened 6 years ago

prospernew commented 6 years ago

1 java.util.ArrayList.get(ArrayList.java:437)

2 com.parkingwang.keyboard.engine.NeighborLayoutTransformer.transformLayout(NeighborLayoutTransformer.java:33) 3 com.parkingwang.keyboard.engine.LayoutMixer.transform(LayoutMixer.java:38) 4 com.parkingwang.keyboard.engine.KeyboardEngine.update(KeyboardEngine.java:80) 5 com.parkingwang.keyboard.view.KeyboardView.update(KeyboardView.java:122) 6 com.parkingwang.keyboard.KeyboardInputController$1.onSelectedAt(KeyboardInputController.java:56) 7 com.parkingwang.keyboard.view.InputView$1.onClick(InputView.java:61) 8 android.view.View.performClick(View.java:6329) 9 android.view.View$PerformClick.run(View.java:24996) 10 android.os.Handler.handleCallback(Handler.java:809) 11 android.os.Handler.dispatchMessage(Handler.java:102) 12 android.os.Looper.loop(Looper.java:166) 13 android.app.ActivityThread.main(ActivityThread.java:7377) 14 java.lang.reflect.Method.invoke(Native Method) 15 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469) 16 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)

asiontang commented 5 years ago

从你的崩溃堆栈上来看,和我碰的问题类似,你可以参考参考. 当前省份=蒙的时候,provinces.size=12,而firstRow.size()=10,则会崩溃:

      java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
    at java.util.ArrayList.get(ArrayList.java:411)
            at com.parkingwang.keyboard.engine.NeighborLayoutTransformer.transformLayout(NeighborLayoutTransformer.java:38)

修复方式我简单的修改了 for (int headIdx = 0; headIdx < provinces.size(); headIdx++) 改为 for (int headIdx = 0; headIdx < Math.min(provinces.size(), firstRow.size()); headIdx++) 即可解决此崩溃问题.

完整Commit: Fork/vehicle-keyboard-android@979c57d