Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.io.IOException error=2,没有这样的文件或目录_Java_Android_Kotlin - Fatal编程技术网

java.io.IOException error=2,没有这样的文件或目录

java.io.IOException error=2,没有这样的文件或目录,java,android,kotlin,Java,Android,Kotlin,我是Android新手,正在尝试运行一个名为“HelloWorld”的模糊程序,该程序是我在Rust上编写的,并将结果输出到UI中。这是应该做这件事的代码 import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextView import java.io.File import java.io.IOEx

我是Android新手,正在尝试运行一个名为“HelloWorld”的模糊程序,该程序是我在Rust上编写的,并将结果输出到UI中。这是应该做这件事的代码

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import java.io.File
import java.io.IOException
import java.util.concurrent.TimeUnit

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val buttonRun = findViewById<Button>(R.id.Run)
        val output = findViewById<TextView>(R.id.output)



        buttonRun.setOnClickListener {
            //val someText = "Hello World!"
            val rust = File ("home/querens/Documents/Android/TESTapp/app/src/main/rust")
            val rustResult = "./HelloWorld".runCommand(rust)
            output.text = rustResult
        }
    }
}

fun String.runCommand(workingDir: File): String? {
    try {
        val parts = this.split("\\s".toRegex())
        val proc = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            ProcessBuilder(*parts.toTypedArray())
                    .directory(workingDir)
                    .redirectOutput(ProcessBuilder.Redirect.PIPE)
                    .redirectError(ProcessBuilder.Redirect.PIPE)
                    .start()
        } else TODO("VERSION.SDK_INT < O")

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            proc.waitFor(60, TimeUnit.MINUTES)
        }
        return proc.inputStream.bufferedReader().readText()
    } catch(e: IOException) {
        e.printStackTrace()
        return null
    }
}
导入androidx.appcompat.app.appcompat活动
导入android.os.Bundle
导入android.widget.Button
导入android.widget.TextView
导入java.io.xml文件
导入java.io.IOException
导入java.util.concurrent.TimeUnit
类MainActivity:AppCompatActivity(){
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val buttonRun=findViewById(R.id.Run)
val输出=findViewById(R.id.output)
buttonRun.setOnClickListener{
//val someText=“你好,世界!”
val rust=File(“home/querens/Documents/Android/TESTapp/app/src/main/rust”)
val rustResult=“./HelloWorld.runCommand(rust)
output.text=result
}
}
}
runCommand(workingDir:File):字符串?{
试一试{
val parts=this.split(“\\s.toRegex())
val proc=if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.O){
ProcessBuilder(*parts.toTypedArray())
.directory(workingDir)
.redirectOutput(ProcessBuilder.Redirect.PIPE)
.Redirect错误(ProcessBuilder.Redirect.PIPE)
.start()
}else TODO(“VERSION.SDK_INT=Build.VERSION\u code.O){
等待程序(60,时间单位:分钟)
}
返回proc.inputStream.bufferedReader().readText()
}捕获(e:IOException){
e、 printStackTrace()
返回空
}
}
我没有收到其他错误,所以我假设代码可能会很好,但我不是100%确定。我唯一的错误就是这个。我已经读了很多关于这个错误的帖子,但是到目前为止我还没有实现任何解决方案

java.io.IOException:无法运行程序“/HelloWorld”(在目录“home/querens/Documents/Android/TESTapp/app/src/main/rust”中):错误=2,没有这样的文件或目录


Android设备上不存在主目录。看起来好像你试图使用开发pc的目录。@blackapps没错。我可以这样做吗?我已经模拟了这个设备。。。但是,是的,感觉不对。我应该先把这个exec移动到我的模拟设备上吗?安卓设备上不存在home目录。看起来好像你试图使用开发pc的目录。@blackapps没错。我可以这样做吗?我已经模拟了这个设备。。。但是,是的,感觉不对。我是否应该先将此exec移动到模拟设备?