小编and*_*ndy的帖子

停止/关闭失败:未绑定到 TTS 引擎

我有一个使用 TTS 的 android 活动,但是当我退出它时,Logcat 中出现泄漏的服务连接错误。在泄漏的服务错误上方,我得到一个声明:

stop failed: not bound to TTS engine
shutdown failed: not bound to TTS engine
Run Code Online (Sandbox Code Playgroud)

我的 onStop 和 onDestroy 看起来像这样: 编辑代码:

@Override
public void onStop() {
    if (tts != null) {
    tts.stop();
    }
    super.onStop();
}

@Override
public void onDestroy() {
    if (tts != null) {
        tts.shutdown();
    }
    super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

我在用户按下按钮时触发 TTS(TTS 工作正常,我只是想修复服务连接错误)

if (v == speakButton && ttscrashprotect == 1) {   
    String text = inputText.getText().toString();
    if (text != null && text.length() > 0) {
        tts.speak(text, …
Run Code Online (Sandbox Code Playgroud)

android text-to-speech

5
推荐指数
1
解决办法
4042
查看次数

我是否需要删除我的java应用程序创建的tmp文件?

我在我的应用程序中输出了几个临时文件到tmp目录,但是想知道我是否最好在关闭时删除它们,还是我希望主机操作系统为我处理这个?

我是Java的新手,我可以处理删除,但希望尽可能保持应用程序的多操作系统和Linux友好.如果我不需要这样做,我已尽量减少文件删除.

这是我用来输出tmp文件的方法:

 try {
                java.io.InputStream iss = getClass().getResourceAsStream("/nullpdf.pdf");
                byte[] data = IOUtils.toByteArray(iss);
                iss.read(data);
                iss.close();
                String tempFile = "file";
                File temp = File.createTempFile(tempFile, ".pdf");
                FileOutputStream fos = new FileOutputStream(temp);
                fos.write(data);
                fos.flush();
                fos.close();
            nopathbrain = temp.getAbsolutePath();
            System.out.println(tempFile);
            System.out.println(nopathbrain);
            } catch (IOException ex) {
                ex.printStackTrace();
                System.out.println("TEMP FILE NOT CREATED - ERROR ");
            }
Run Code Online (Sandbox Code Playgroud)

java temporary-files

3
推荐指数
1
解决办法
1835
查看次数

获取从Spinner中选择的位置的Int值 - android

我想得到我在我的活动上运行的4个微调器中所选位置的int值.一旦我有了Int值,我想根据这个值循环并写出一个文件到SDCARD,选择IE spinner1项目4,在SD卡上生成文本文件1,2,3,4.

我不确定如何获取用户在每个微调器中单击的位置的int值,但是我想在选择图像按钮时"收集"这些值,目前这是我的代码;

    //used to track spinner value
public int spinner1 = 0;
public int spinner2 = 0;
public int spinner3 = 0;
public int spinner4 = 0;


        etnumber1 = (Spinner) findViewById(R.id.etnumber1);
    etnumber2 = (Spinner) findViewById(R.id.etnumber2);
        etnumber3 = (Spinner) findViewById(R.id.etnumber3);
    etnumber4 = (Spinner) findViewById(R.id.etnumber4);

         etnumber1.setOnItemSelectedListener(this);
 etnumber2.setOnItemSelectedListener(this);
 etnumber3.setOnItemSelectedListener(this);
 etnumber4.setOnItemSelectedListener(this);


 }//end of oncreate

     public void onClick(View v) {
      if (v==imagerun) {
           for (int i=1; i<spinner1; i++){
            //primary callsign
                Toast.makeText(getBaseContext(), String.valueOf(i),
                        Toast.LENGTH_SHORT).show();
                 String fileName = String.valueOf(i) +".txt";   
        File myFile = new File("/sdcard/.working/" +fileName); …
Run Code Online (Sandbox Code Playgroud)

int android android-spinner

2
推荐指数
1
解决办法
7487
查看次数

如何判断ADB是否检测到Android设备?

当我通过USB连接时,我正在使用ADB将文件从我的java应用程序推送到平板电脑.我希望能够通过ADB检测设备是否通过USB连接.我用来推送文件的代码是:

public void wiredsync(){
        try {
            abdsourcesync = buildpath; 
            adbtabletsync = "/mnt/sdcard/test"; 
            System.out.println("Starting Sync via adb with command " + "adb" + " push "+ buildpath + " " + adbtabletsync);
                    Process process = Runtime.getRuntime().exec("adb" + " push "+ buildpath + " " + adbtabletsync);
                    InputStreamReader reader = new InputStreamReader(process.getInputStream());
                    Scanner scanner = new Scanner(reader);
                    scanner.close();
                } catch(IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    }//end wiredsync
Run Code Online (Sandbox Code Playgroud)

如果平板电脑已连接,我该如何修改此代码?

谢谢您的帮助.

安迪

java adb

1
推荐指数
1
解决办法
3887
查看次数

分段故障检查用户参数c

我正在尝试使用argc和argv从命令行验证用户输入,但我遇到了分段错误,我不知道为什么.

我想验证用户是否已输入正int(因此argc = 2且argv为正).

这是我的代码:

int main (int argc, string argv[])
{
    int k = atoi(argv[1]);
    if (argc != 2 && k <1)
    {
          return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码中的k <1部分似乎工作正常,但每次尝试运行时都会出现分段错误而没有程序名和参数(agrc!= 2).

编辑:

更清楚地描述错误处理问题:

如果我运行./myprogram -2然后我按预期得到我的返回1.

如果我运行./myprogram hjdksfhdsk然后按预期得到我的返回1.

如果我运行./myprogram,那么我会遇到分段错误.

正是这种行为让我觉得我对argc值的处理是错误的,但我不知道为什么我不能只测试argc!= 2.

c

0
推荐指数
1
解决办法
1293
查看次数

标签 统计

android ×2

java ×2

adb ×1

android-spinner ×1

c ×1

int ×1

temporary-files ×1

text-to-speech ×1