问题描述
所以我一直在尝试使用运行时方法在Java中运行简单的python脚本。在android studio之外,它运行良好,但是在Andorid studio中,我怀疑此错误java.io.FileNotFoundException: file.py: open Failed: EROFS (Read-only file system)'
。
我知道这不是通过Java运行python脚本的最有效方法,但是请帮帮我。我不知道要更改什么权限才能编写新脚本。
这里是我的完整代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView resultstv = (TextView)findViewById(R.id.resultsTV);
Button solvebtn = (Button)findViewById(R.id.solvebtn);
final EditText enterWordTv = (EditText)findViewById(R.id.enterWordET);
solvebtn.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
resultstv.setText(anagram(getEnterWordTv(enterWordTv)).toString());
}
});
}
public String getEnterWordTv(EditText inputFU) {
String finWord = inputFU.getText().toString();
return(finWord);
}
static ArrayList<String> anagram(Int num){
ArrayList<String> results = new ArrayList<String>();
try {
String mainPrg = "import sys\nprint(sys.argv[1])";
BufferedWriter out = new BufferedWriter(new FileWriter("AnagremSOlver.py"));
out.write(mainPrg);
out.close();
String number = num;
Process p = Runtime.getRuntime().exec("python3 AnagremSOlver.py " + number);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String ret;
while ((ret = in.readLine()) != null){
results.add(ret);
}
System.out.println(results);
} catch (Exception e){
System.out.println(e);
}
return(results);
}
}
其他地方的其他答案都告诉我通过添加AndroidManifest.xml
来更新<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
中的权限,但是添加后,我仍然遇到相同的问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)