java - 值引擎不是对象 android.speech.tts.TextToSpeech 的成员

标签 java android eclipse scala text-to-speech

在 java 中,使用 android-19,这工作正常:

import android.speech.tts.TextToSpeech.Engine;

但是在 Scala 中:

import android.speech.tts.TextToSpeech.Engine
                                       ^
error: value Engine is not a member of object android.speech.tts.TextToSpeech

这很奇怪,因为我可以毫无问题地导入 EngineInfo,但它不识别类 Engine,尽管它显然在 android.jar 中

任何修复或解决方法?这是一个scala问题吗?我正在使用 AndroidProguardScala v51 和 Scala IDE 3.0.1 版在 Eclipse 3.7 上进行开发

编辑

例如,我使用它的上下文如下:

if(resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
  mTts = new TextToSpeech(this, mTtsListener)
}

最佳答案

不幸的是,TextToSpeech.Engine 被声明为非静态的,这意味着是这样的:

public class TextToSpeech {
    public class Engine {
        // ...
    }
    // ...
}

所以根据this ,您无法访问它。这是我使用包装器的解决方法:

object ConstantsWrapper {
  private val cls = classOf[TextToSpeech#Engine]
  def apply(fieldName: String) = cls.getDeclaredField(fieldName).get(null)
                                    .toString

  val CHECK_VOICE_DATA_PASS = apply("CHECK_VOICE_DATA_PASS")
  // Insert more here
}

if (resultCode == ConstantsWrapper.CHECK_VOICE_DATA_PASS) {
  mTts = new TextToSpeech(this, mTtsListener)
}

关于java - 值引擎不是对象 android.speech.tts.TextToSpeech 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23495442/

相关文章:

java - 如何在java中找到时间持续时间之间的差异?

java - 该程序未记录第一个数组,设置为空 - Java

Android NFC应用安全测试

android - 为什么我的 Android 应用程序会耗尽电池电量?

eclipse - aptana/eclipse 中 scss 的 .scss.erb 扩展语法高亮

php - 从服务器 URL 下载图像 android

java - 选择查询未能找到记录

java - 使用 Log4j 2 登录 Windows 事件日志

android - 以编程方式关闭搜索 View

java - 使用 Eclipse 创建新的 android 项目后,Eclipse 中的 SRC 文件夹为空(未创建 MainActivity 类)