致命异常主要android
我越来越致命异常主要error.Any帮助吗?致命异常主要android
下面是代码:
私人无效copyStream(字符串assetFilename,字符串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):致命例外:main 0 9-16 19:52:26.654 E/AndroidRuntime(294):java.lang.IllegalStateException: 无法执行活动的方法09-16 19:52:26.654: E/AndroidRuntime(294):at 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/AndroidRuntime(294):at android.view.View $ PerformClick.run(View.java:9080)09-16 19:52:26.654: E/AndroidRuntime(294):at 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/AndroidR (294):at android.os.Looper.loop(Looper.java:123)09-16 19:52:26.654: E/AndroidRuntime(294):at 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/AndroidRuntime(294):at 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/AndroidRuntim e(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):at java.lang.reflect.Method.invokeNative(Native Method)09-16 19:52:26.654:E/AndroidRuntime(294):at java.lang。反射。方法.invoke(Method.java:507)09-16 19:52:26.654: E/AndroidRuntime(294):at 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.pl atform.OSFileSystem.write(Native Method) 09-16 19:52:26.654:E/AndroidRuntime(294):at dalvik.system.BlockGuard $ WrappedFileSystem.write(BlockGuard.java:171) 09-16 19: E:/ AndroidRuntime(294):at java.io.FileOutputStream.write(FileOutputStream.java:300)09-16 19:52:26.654: FileOutputStream.write(FileOutputStream.java:256)09-16 19:52:26.654:E/AndroidRuntime(294):at java.io.DataOutputStream.writeBytes(DataOutputStream。java:167)
异常的基础看起来是来自“FileOutputStream.write”,您是否向清单中添加了写入权限?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
已添加权限,但仍存在错误。 – Neal
添加此权限在mainfest.I希望它为你工作&ü应该初始化这个object.In你的代码,你给它为什么不工作的情况下null值多数民众赞成。
/**需要某种Intilization代替空
ContextWrapper myContext = NULL;
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
请使用AsyncTask或Thread。 如果你写你自己的方法,你可以使用这样的:
new Thread(
new Runnable() {
@Override
public void run() {
copyStream();
}
}
);
或使用的AsyncTask
默认情况下,你没有写权限在/system/etc
,(除非你做一些黑客你设备)。将其更改为Environment.getExternalStorageDirectory().getPath() + "/folderName/excluded-input-devices.xml"
我面临同样的问题..但如果我将“su”更改为“sh” 那么它就起作用(至少不会引发破管异常) – DeltaCap