【发布时间】:2012-09-08 23:54:08
【问题描述】:
我收到 FATAL Exception 主要错误。有什么帮助吗?
代码如下:
private void copyStream(String assetFilename, String outFileName) 抛出 IOException {
Process mSuProcess; mSuProcess = Runtime.getRuntime().exec("su"); ContextWrapper myContext = null; InputStream myInput = myContext.getAssets().open(assetFilename); OutputStream myOutput = new FileOutputStream(outFileName); //transfer bytes from the inputfile to the outputfile byte[] buffer = new byte[2048]; int length; while ((length = myInput.read(buffer))>0){ myOutput.write(buffer, 0, length); } //Close the streams myOutput.flush(); myOutput.close(); myInput.close(); } public void copyon(View view) throws IOException { copyStream("floaton.xml","/system/etc/excluded-input-devices.xml"); } public void copyoff(View view) throws IOException { copyStream("floatoff.xml","/system/etc/excluded-input-devices.xml"); }
还有logcat
09-16 19:52:26.654: E/AndroidRuntime(294):FATAL EXCEPTION: main 09-16 19:52:26.654: E/AndroidRuntime(294):java.lang.IllegalStateException: 无法执行活动 09-16 19:52:26.654 的方法: E/AndroidRuntime(294):在 android.view.View$1.onClick(View.java:2144) 09-16 19:52:26.654: E/AndroidRuntime(294):at android.view.View.performClick(View.java:2485) 09-16 19:52:26.654: E/Android运行时(294):在 android.view.View$PerformClick.run(View.java:9080) 09-16 19:52:26.654: E/Android运行时(294):在 android.os.Handler.handleCallback(Handler.java:587) 09-16 19:52:26.654: E/AndroidRuntime(294):at android.os.Handler.dispatchMessage(Handler.java:92) 09-16 19:52:26.654: E/AndroidRuntime(294):at android.os.Looper.loop(Looper.java:123) 09-16 19:52:26.654: E/Android运行时(294):在 android.app.ActivityThread.main(ActivityThread.java:3683) 09-16 19:52:26.654: E/AndroidRuntime(294):at java.lang.reflect.Method.invokeNative(Native Method) 09-16 19:52:26.654: E/AndroidRuntime(294):at java.lang.reflect.Method.invoke(Method.java:507) 09-16 19:52:26.654: E/Android运行时(294):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 09-16 19:52:26.654: E/AndroidRuntime(294):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 09-16 19:52:26.654: E/AndroidRuntime(294):at dalvik.system.NativeStart.main(本机方法)09-16 19:52:26.654: E/AndroidRuntime(294):引起: java.lang.reflect.InvocationTargetException 09-16 19:52:26.654: E/AndroidRuntime(294):在 java.lang.reflect.Method.invokeNative(Native 方法) 09-16 19:52:26.654: E/AndroidRuntime(294):at java.lang.reflect.Method.invoke(Method.java:507) 09-16 19:52:26.654: E/AndroidRuntime(294):在 android.view.View$1.onClick(View.java:2139) 09-16 19:52:26.654: E/AndroidRuntime(294): ... 11 更多 09-16 19:52:26.654:E/AndroidRuntime(294):引起:java.io.IOException: 断管 09-16 19:52:26.654: E/AndroidRuntime(294): at org.apache.harmony.luni.platform.OSFileSystem.write(本机方法) 09-16 19:52:26.654: E/AndroidRuntime(294): 在 dalvik.system.BlockGuard$WrappedFileSystem.write(BlockGuard.java:171) 09-16 19:52:26.654: E/AndroidRuntime(294):at java.io.FileOutputStream.write(FileOutputStream.java:300) 09-16 19:52:26.654: E/AndroidRuntime(294):at java.io.FileOutputStream.write(FileOutputStream.java:256) 09-16 19:52:26.654: E/AndroidRuntime(294):at java.io.DataOutputStream.writeBytes(DataOutputStream.java:167)
【问题讨论】:
-
我面临同样的问题.. 但是如果我将“su”更改为“sh”那么它可以工作(至少不要引发破管异常)