致命异常主要安卓系统



我收到致命异常主错误。有什么帮助吗?

这是代码:

private void 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 09-1619: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):在android.view.view.performClick(view.java:2485)09-16 19:52:26.654:E/AndroidRuntime(294):在android.view.view$PerformClick.run(view.java:9080)09-16 19:52:26.654:E/AndroidRuntime(294):在android.os.Handler.handleCallback(Handler.java:587)09-1619:52:26.654:E/AndroidRuntime(294):在android.os.Handler.dispatchMessage(Handler.java:92)09-1619:52:26.654:E/AndroidRuntime(294):在android.os.Looper.loop(Looper.java:123)09-16 19:52:26.654:E/AndroidRuntime(294):在android.app.ActivityThread.main(ActivityThreads.java:3683)09-1619:52:26.654:E/AndroidRuntime(294):在java.lang.reflect.Method.invokeNative(Native Method)09-1619:52:26.654:E/AndroidRuntime(294):在java.lang.reflect.Method.ioke(Method.java:507)09-16 19:52:26.654:E/AndroidRuntime(294):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)09-16 19:52:26.654:E/AndroidRuntime(294):在com.android.internal.os.ZygoteInit.main(ZygoteNit.java:597)09-1619:52:26.654:E/AndroidRuntime(294):在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):在java.lang.reflect.Method.ioke(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-1619:52:26.654:E/AndroidRuntime(294):由java.io.io引起异常:管道破裂09-16 19:52:26.654:E/AndroidRuntime(294):在org.apache.heamony.luni.platform.OSFileSystem.write(Native Method)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):在java.io.FileOutputStream.write(FileOutputStream.java:300)09-1619:52:26.654:E/AndroidRuntime(294):在java.io.FileOutputStream.write(FileOutputStream.java:256)09-1619:52:26.654:E/AndroidRuntime(294):在java.io.DataOutputStream.writeBytes(DataOutputStream.java:167)

异常的基础似乎来自"FileOutputStream.write",您是否已将写入权限添加到清单中?

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在您的主节中添加此权限。我希望它能为你工作;u应该初始化这个对象。在您的代码中,您将上下文值设置为null,这就是它不起作用的原因。

/**需要一些初始化而不是空

ContextWrapper myContext=null;

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

请使用AsyncTask或Thread。如果你写了自己的方法,你可以这样使用:

new Thread(
new Runnable() {
@Override
public void run() {
copyStream();
}
}
);

OR使用AsyncTask

默认情况下,您对/system/etc没有写入权限(除非您对设备进行了一些黑客攻击)。将其更改为Environment.getExternalStorageDirectory().getPath() + "/folderName/excluded-input-devices.xml"

您正在线程内调用onClick方法。这是不可能的,因为视图在主线程中,不能从任何其他线程访问。

相关内容

  • 没有找到相关文章

最新更新