java.io.IOException error=2,没有这样的文件或目录
我是Android新手,正在尝试运行一个名为“HelloWorld”的模糊程序,该程序是我在Rust上编写的,并将结果输出到UI中。这是应该做这件事的代码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
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移动到模拟设备?