Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty

Android上的Scala:java.lang.NoSuchMethodError:java.lang.String.isEmpty,android,exception,scala,dalvik,nosuchmethoderror,Android,Exception,Scala,Dalvik,Nosuchmethoderror,我在Android 2.2.1上遇到以下异常: java.lang.NoSuchMethodError:java.lang.String.isEmpty 我正在从Scala呼叫text.isEmpty。有什么想法,如何解决这个问题吗?java.lang.String.isEmpty()是在姜饼(2.3)中添加的。您必须编写自己的替换函数…或者使用(text.length()>0)?使用JRE/JDK 1.5,它在字符串上没有isEmpty方法。这将避免Scala使用1.6的isEmpty而不是自

我在Android 2.2.1上遇到以下异常:

java.lang.NoSuchMethodError:java.lang.String.isEmpty


我正在从Scala呼叫
text.isEmpty
。有什么想法,如何解决这个问题吗?

java.lang.String.isEmpty()
是在姜饼(2.3)中添加的。您必须编写自己的替换函数…

或者使用
(text.length()>0)

使用JRE/JDK 1.5,它在
字符串上没有
isEmpty
方法。这将避免Scala使用1.6的isEmpty而不是自己的。如果您也有Java库,请务必选择与1.5兼容的库。

使用TextUtils.isEmpty(),从API级别1开始提供。

是的,我现在使用的是
text.length==0
。我是根据2.2编译的,编译器会编译它。它发现
索引eqoptimized.isEmpty
中的
isEmpty
实现已优化。这是一种Scala怪癖。你问题中的Android API肯定是在姜饼之前才出现的。看到上面说的“自API级别9”是的,但我认为它应该使用trait
IndexedSeqOptimized
中的实现。问题是,为什么它不使用这种特性?请查看此帖子