如何启动罐在Android ICS“EXEC app_process”ICS、Android、app_process、EXEC

由网友(风月不等闲)分享简介:我有3个设备。1.base上CM9(安卓4.0.4)。1.base on cm9(android 4.0.4).2.htcg14(安卓4.0.3)2.htcg14(android 4.0.3)3.moto在MIUI ME525基地(安卓2.2)3.moto me525 base on miui(android 2...

我有3个设备。

1.base上CM9(安卓4.0.4)。

1.base on cm9(android 4.0.4).

2.htcg14(安卓4.0.3)

2.htcg14(android 4.0.3)

3.moto在MIUI ME525基地(安卓2.2)

3.moto me525 base on miui(android 2.2)

它们都植根。

余exec的下面在装置1和3的终端的code中,过程工作正常。 但装置2,这是行不通的。

I exec the code below in the terminal on device 1 and 3,the process works fine. But device 2,it doesn't work.

su
export CLASSPATH=/sdcard/foo.jar
exec app_process /system/bin xx.xx.Test '$@'

日志

W/dalvikvm(12364): Exception Ljava/lang/NullPointerException; thrown while initializing Ljava/lang/System;
W/dalvikvm(12364): Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Ljava/lang/ClassLoader$SystemClassLoader;
W/dalvikvm(12364): WARNING: system class loader is NULL (setting main ctxt)
W/dalvikvm(12364): Warning: tracked references remain post-initialization
W/dalvikvm(12364): MAIN reference table (0xf9a388) dump:
W/dalvikvm(12364):   Last 1 entries (of 1):
E/dalvikvm(12364): Class lookup Ljava/lang/Daemons; attempted with exception pending
W/dalvikvm(12364): Pending exception is:
I/dalvikvm(12364): java.lang.ExceptionInInitializerError:
I/dalvikvm(12364):     at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:125)
I/dalvikvm(12364):     at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(12364): Caused by:
I/dalvikvm(12364): java.lang.ExceptionInInitializerError:
I/dalvikvm(12364):     at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:100)
I/dalvikvm(12364):     at java.lang.ClassLoader.access$000(ClassLoader.java:65)
I/dalvikvm(12364):     at java.lang.ClassLoader$SystemClassLoader.<clinit>(ClassLoader.java:81)
I/dalvikvm(12364):     at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:125)
I/dalvikvm(12364):     at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(12364): Caused by:
I/dalvikvm(12364): java.lang.NullPointerException:
I/dalvikvm(12364):     at java.util.Hashtable.put(Hashtable.java:365)
I/dalvikvm(12364):     at java.lang.System.initSystemProperties(System.java:286)
I/dalvikvm(12364):     at java.lang.System.getProperties(System.java:260)
I/dalvikvm(12364):     at java.lang.System.getProperty(System.java:425)
I/dalvikvm(12364):     at java.lang.System.getProperty(System.java:406)
I/dalvikvm(12364):     at java.lang.System.<clinit>(System.java:90)
I/dalvikvm(12364):     at java.lang.ClassLoader.createSystemClassLoader(ClassLoader.java:100)
I/dalvikvm(12364):     at java.lang.ClassLoader.access$000(ClassLoader.java:65)
I/dalvikvm(12364):     at java.lang.ClassLoader$SystemClassLoader.<clinit>(ClassLoader.java:81)
I/dalvikvm(12364):     at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:125)
I/dalvikvm(12364):     at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(12364): DALVIK THREADS:
I/dalvikvm(12364): (mutexes: tll=0 tsl=0 tscl=0 ghl=0)
I/dalvikvm(12364): "main" prio=5 tid=1 RUNNABLE
I/dalvikvm(12364):   | group="main" sCount=0 dsCount=0 obj=0x40aa1490 self=0xf99d30
I/dalvikvm(12364):   | sysTid=12364 nice=0 sched=0/0 cgrp=default handle=1074107592
I/dalvikvm(12364):   | schedstat=( 0 0 0 ) utm=18 stm=7 core=0
I/dalvikvm(12364):   at dalvik.system.NativeStart.main(Native Method)
I/dalvikvm(12364): 
E/dalvikvm(12364): VM aborting
F/libc    (12364): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1)
I/DEBUG   ( 4218): debuggerd: 2012-08-02 14:29:57
I/DEBUG   ( 4218): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   ( 4218): Build fingerprint: 'htc_asia_tw/htc_pyramid/pyramid:4.0.3/IML74K/391535.6:user/release-keys'
I/DEBUG   ( 4218): pid: 12364, tid: 12364  >>> app_process <<<
I/DEBUG   ( 4218): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadd00d

当我Exec的这些code在Java中,设备1和2不work.They具有相同的error.About装置3,我不知道结果,因为有人找回他的设备。

When I exec these code in java,device 1 and 2 don't work.They have the same error.About device 3,I don't know the result,because someone get back his device.

帮助!任何想法?

推荐答案

好像是发射dalvikvm的时候,您的 LD_LIBRARY_PATH 是不正确的环境设置。 在ICS和放大器; JB,dalvikvm需要的 LD_LIBRARY_PATH 有一定的路径了。默认值为 /供应商/ lib目录下:/系统/ lib目录,虽然平时 /系统/ lib目录就足够了。否则,你会看到例外。

It seems like that when launching dalvikvm, your LD_LIBRARY_PATH is not correctly set in the environment. In ICS & JB, dalvikvm requires LD_LIBRARY_PATH to have certain path in it. The default is /vendor/lib:/system/lib, although usually /system/lib is enough. Else you would see the exception.

您可以尝试添加导出LD_LIBRARY_PATH = /供应商/ lib目录下:/系统/ lib目录命令后,在你的脚本。

You may try to add export LD_LIBRARY_PATH=/vendor/lib:/system/lib after the su command in your script.

如果您EUID不符合你的uid, LD_LIBRARY_PATH 可从环境中剥离。您可以使用 ID ID -r 来检查它们是否匹配。你也可以检查 /系统/斌/ mksh 是setuid'ed,因为这也可能会导致问题。

If your euid does not match your uid, LD_LIBRARY_PATH may be stripped from the environment. You can use id and id -r after su to check if they match. You may also check if /system/bin/mksh is setuid'ed, since this may also cause the problem.

阅读全文

相关推荐

最新文章