我试图在Android上运行一个子进程(请参阅this question),这需要设置PYTHONHOME环境变量.我尝试使用以下代码进行 *** 作:
ProcessBuilder pbuilder = new ProcessBuilder("python/bin/python", "test.py"); pbuilder.directory(getfilesDir()); Map<String, String> env = pbuilder.environment(); env.put("PYTHONHOME", "python"); Process process = pbuilder.start();
但我得到这个例外:
E/AndroIDRuntime(25857): FATAL EXCEPTION: mainE/AndroIDRuntime(25857): java.lang.UnsupportedOperationException: Can't modify environmentE/AndroIDRuntime(25857): at java.lang.SystemEnvironment.put(System.java:740)E/AndroIDRuntime(25857): at java.lang.SystemEnvironment.put(System.java:688)E/AndroIDRuntime(25857): at my codeE/AndroIDRuntime(25857): at androID.vIEw.VIEw.performClick(VIEw.java:2408)E/AndroIDRuntime(25857): at androID.vIEw.VIEw$PerformClick.run(VIEw.java:8816)E/AndroIDRuntime(25857): at androID.os.Handler.handleCallback(Handler.java:587)E/AndroIDRuntime(25857): at androID.os.Handler.dispatchMessage(Handler.java:92)E/AndroIDRuntime(25857): at androID.os.Looper.loop(Looper.java:123)E/AndroIDRuntime(25857): at androID.app.ActivityThread.main(ActivityThread.java:4627)E/AndroIDRuntime(25857): at java.lang.reflect.Method.invokeNative(Native Method)E/AndroIDRuntime(25857): at java.lang.reflect.Method.invoke(Method.java:521)E/AndroIDRuntime(25857): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)E/AndroIDRuntime(25857): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:626)E/AndroIDRuntime(25857): at dalvik.system.NativeStart.main(Native Method)
有人有建议吗?我尝试将对python的调用包装在导出PYTHONHOME的shell脚本中,但没有成功.
加布
解决方法:
就在最近遇到了同样的问题.似乎您无法在AndroID版本< = 2.2上修改ProcessBuilder的环境图.我发现的唯一解决方法是使用exec()而不是ProcessBuilder.在您的情况下,这将导致以下问题:
String[] cmdarray = {"python/bin/python", "test.py"};String[] envp = {"PYTHONHOME=python"};Process process = Runtime.getRuntime().exec(cmdarray, envp, getfilesDir());
希望能有所帮助.
C
以上是内存溢出为你收集整理的android-如何解决java.lang.UnsupportedOperationException:无法修改环境?全部内容,希望文章能够帮你解决android-如何解决java.lang.UnsupportedOperationException:无法修改环境?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)