2013-07-19 61 views
1

我想在Android上远程更新一个Apk。要运行更新而不需要用户干预,我正在使用此帖子Linkpm命令给出分段错误

但是,该过程正在返回,退出代码139意味着分段错误。我的平板电脑已经植根,并已确认。

File file = new File(Constants.UPDATE_APK_PATH); 
    try { 
     String[] filenames = file.list(); 
     File apk = new File(file, filenames[0]); 
     Process pid = Runtime.getRuntime().exec(
       new String[] { "su", "-c", 
         "pm install -r "+apk.getAbsolutePath()}); 
     pid.waitFor(); 

有人可以告诉我究竟是做错了什么吗?该文件出现在该位置并且两个apk的签名都是相同的。

回答

1

我敢肯定,如果您使用adb install而不是pm install可以解决此问题。 但我相信在这种情况下,应用程序没有足够的权限来安装软件包。

+0

如何从活动执行adb?我已经添加了这些权限“android.permission.FACTORY_TEST”,“android.permission.INSTALL_PACKAGES”,“android.permission.DELETE_PACKAGES”。你能知道我错过了什么吗? – jeevs

+0

您不需要执行shell命令的这些权限。在你上面的代码中用adb代替pm – blganesh101

+0

adb也没有工作。现在该进程的退出代码是1。 – jeevs