我正在使用此处的示例重新启动应用程序:
Restart an application by itself
效果很好。直到我想将传递给应用程序的参数传递给重启实例。
java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader[DexPathList[[zipfile"/data/app/com.example.dogan.ligntningshower-/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libopencv_core.so"
在第一个例子中,这是我想要完成的。 ping可以正常工作但没有。
第二个示例显示已删除传递的参数。这有效,应用程序启动,但没有传递任何参数。
" buf =="来自调试WATCH面板。
我没有看到任何错误。请指教。
博伊德
static {
System.loadLibrary("opencv_core");
System.loadLibrary("jniopencv_core");
}
答案 0 :(得分:1)
我相信命令字符串中的&&
是命令提示符的一个功能。 ShellExecute不会注意这一点。它认为它只是该行上第一个命令的另一个参数(ping)。
您的选择是:
转而使用cmd.exe进程,并使用/C
将命令行传递给它。 (有关详细信息,请阅读cmd.exe的/C
选项。)
让程序分别发出两个命令。如果需要确保ping命令在第二个命令之前成功完成,则可能需要使用CreateProcess而不是ShellExecute。 CreateProcess将为您提供等待进程并检查其退出状态所需的句柄。