2017-06-01 18 views
35

Tôi đã chạy vào ERROR với SBT hôm nay. Nó tốt nhất có thể được hiển thị với các sbt sbt-version lệnh:Lỗi SBT: "Không thể xây dựng thiết bị đầu cuối; quay trở lại không được hỗ trợ ..."

Run trên 5/29/17:

[email protected]:~$ sbt sbt-version 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option 
MaxPermSize=256M; support was removed in 8.0 
[info] Set current project to eric (in build file:/home/eric/) 
[info] 0.13.13 

Run trên 6/1/17:

[email protected]:~$ sbt sbt-version 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option    
MaxPermSize=256M; support was removed in 8.0 
[ERROR] Failed to construct terminal; falling back to unsupported 
java.lang.NumberFormatException: For input string: "0x100" 
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
at java.lang.Integer.parseInt(Integer.java:580) 
at java.lang.Integer.valueOf(Integer.java:766) 
at jline.internal.InfoCmp.parseInfoCmp(InfoCmp.java:59) 
at jline.UnixTerminal.parseInfoCmp(UnixTerminal.java:233) 
at jline.UnixTerminal.<init>(UnixTerminal.java:64) 
at jline.UnixTerminal.<init>(UnixTerminal.java:49) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
at java.lang.Class.newInstance(Class.java:442) 
at jline.TerminalFactory.getFlavor(TerminalFactory.java:209) 
at jline.TerminalFactory.create(TerminalFactory.java:100) 
at jline.TerminalFactory.get(TerminalFactory.java:184) 
at jline.TerminalFactory.get(TerminalFactory.java:190) 
at sbt.ConsoleLogger$.ansiSupported(ConsoleLogger.scala:123) 
at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:117) 
at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala) 
at sbt.GlobalLogging$.initial(GlobalLogging.scala:43) 
at sbt.StandardMain$.initialGlobalLogging(Main.scala:64) 
at sbt.StandardMain$.initialState(Main.scala:73) 
at sbt.xMain.run(Main.scala:29) 
at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109) 
at xsbt.boot.Launch$.withContextLoader(Launch.scala:128) 
at xsbt.boot.Launch$.run(Launch.scala:109) 
at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35) 
at xsbt.boot.Launch$.launch(Launch.scala:117) 
at xsbt.boot.Launch$.apply(Launch.scala:18) 
at xsbt.boot.Boot$.runImpl(Boot.scala:41) 
at xsbt.boot.Boot$.main(Boot.scala:17) 
at xsbt.boot.Boot.main(Boot.scala) 

[info] Set current project to eric (in build file:/home/eric/) 
[info] 0.13.13 

Không có thay đổi (mà tôi biết của tôi hoặc SBT hoặc thiết lập Java của tôi.

Bất kỳ ý tưởng nào về nguyên nhân gây ra lỗi này hoặc cách khắc phục lỗi?

Cảm ơn bạn!

+0

Tôi gặp vấn đề tương tự. Vấn đề là, 'infocmp' có giá trị hex cho' color # 0x100' mà jline.UnixTerminal không thể phân tích cú pháp. Lỗi đã được khắc phục: https://github.com/jline/jline2/commit/c1b1676de1803278289af0622ad202f1c7a526ec – amuttsch

Trả lời

44

Tôi đã tìm thấy gói gây ra sự cố này: ncurses. Tôi đã hạ cấp ncurses xuống phiên bản ncurses-6.0+20170429-1 (Tôi đang sử dụng Arch Linux) và SBT bắt đầu tốt.

bước cho Arch Linux:

cd /var/cache/pacman/pkg 
sudo pacman -U ncurses-6.0+20170429-1-x86_64.pkg.tar.xz # or some other older version 

bước cho Mac: xem https://github.com/jline/jline2/issues/281

Tôi nghĩ rằng vấn đề này đã được giới thiệu với kernel phiên bản 20.170.506, xem: http://invisible-island.net/ncurses/NEWS.html#index-t20170506

+ modify tic/infocmp display of numeric values to use hexadecimal when 
     they are "close" to a power of two, making the result more readable. 

tôi nộp một vấn đề về trình theo dõi vấn đề SBT:

Chỉnh sửa: Phiên bản SBT 0.13.16 bao gồm bản sửa lỗi cho vấn đề này.

+2

Cảm ơn bạn về điều này và bài đăng của bạn tới github. Tôi nhận thấy vấn đề ngay sau khi cập nhật bản cập nhật OpenSUSE Tumbleweed ngày hôm qua. ncurses! Tôi sẽ theo dõi sự phát triển. Đánh giá cao. :-) – ericky

+0

Tương tự, cảm ơn bạn đã chẩn đoán! –

56

Tôi gặp vấn đề tương tự, đặc biệt khi biến môi trường TERM được đặt thành xterm-256color. Đặt giá trị đó thành một giá trị khác đã khắc phục vấn đề cho tôi, ví dụ:

export TERM=xterm-color 
+1

phù hợp với tôi, người dùng vòm. Arch Kernel 4.11.3-1-ARCH, sbt phiên bản 2.5.15 "Streamy" – KGCybeX

+1

làm việc trên iTerm2 chạy trên macOS Sierra –

+0

thêm này ở trên cùng của bệ phóng sbt của tôi – Utgarda

6

sbt lệnh chỉ là một tập lệnh. Nó tải $HOME/.sbtconfig ngay từ đầu, vì vậy chỉ cần đặt

export TERM=xterm-color 

như @ user3113045 cho biết trong tệp conf, sbt sẽ hoạt động. Trong trường hợp đó, các lệnh từ khác của bạn sẽ vẫn sử dụng xterm-256color.

8

Bạn có thể thêm export TERM=xterm-color lên đầu /usr/share/sbt/bin/sbt vì không được sử dụng $HOME/.sbtconfig.

Các vấn đề liên quan