调试错误:setreuid() failed. errno:2

xingjiaqingyu 2011-04-09 06:04:23
在做一个android上的进制转换器程序,调试的时候出了这个很奇怪的错误,以下是logcat记录:

04-09 09:47:42.519: ERROR/Zygote(33): setreuid() failed. errno: 2
04-09 09:47:51.549: ERROR/Zygote(33): setreuid() failed. errno: 17
04-09 09:47:53.189: ERROR/BatteryService(59): usbOnlinePath not found
04-09 09:47:53.189: ERROR/BatteryService(59): batteryVoltagePath not found
04-09 09:47:53.189: ERROR/BatteryService(59): batteryTemperaturePath not found
04-09 09:47:53.219: ERROR/SurfaceFlinger(59): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
04-09 09:48:01.219: ERROR/EventHub(59): could not get driver version for /dev/input/mouse0, Not a typewriter
04-09 09:48:01.229: ERROR/EventHub(59): could not get driver version for /dev/input/mice, Not a typewriter
04-09 09:48:01.590: ERROR/System(59): Failure starting core service
04-09 09:48:01.590: ERROR/System(59): java.lang.SecurityException
04-09 09:48:01.590: ERROR/System(59): at android.os.BinderProxy.transact(Native Method)
04-09 09:48:01.590: ERROR/System(59): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)
04-09 09:48:01.590: ERROR/System(59): at android.os.ServiceManager.addService(ServiceManager.java:72)
04-09 09:48:01.590: ERROR/System(59): at com.android.server.ServerThread.run(SystemServer.java:184)
04-09 09:48:03.009: ERROR/SoundPool(59): error loading /system/media/audio/ui/Effect_Tick.ogg
04-09 09:48:03.019: ERROR/SoundPool(59): error loading /system/media/audio/ui/KeypressStandard.ogg
04-09 09:48:03.039: ERROR/SoundPool(59): error loading /system/media/audio/ui/KeypressSpacebar.ogg
04-09 09:48:03.039: ERROR/SoundPool(59): error loading /system/media/audio/ui/KeypressDelete.ogg
04-09 09:48:03.049: ERROR/SoundPool(59): error loading /system/media/audio/ui/KeypressReturn.ogg
04-09 09:48:05.159: ERROR/ThrottleService(59): Could not open GPS configuration file /etc/gps.conf
04-09 09:48:06.609: ERROR/logwrapper(143): executing /system/bin/tc failed: No such file or directory
04-09 09:48:06.699: ERROR/logwrapper(145): executing /system/bin/tc failed: No such file or directory
04-09 09:48:06.929: ERROR/logwrapper(148): executing /system/bin/tc failed: No such file or directory
04-09 09:48:21.147: ERROR/HierarchicalStateMachine(59): TetherMaster - unhandledMessage: msg.what=3

以下是源代码,分为三个java文件:
第一个:Switch.java

package com.Elzsx.Switch;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class Switch extends Activity implements OnClickListener {
/** Called when the activity is first created. */
private EditText Number = null;
private EditText FromBinary = null;
private EditText ToBinary = null;
private Button SwitchButton = null;
private Button ExitButton = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Number = (EditText) findViewById(R.id.Number_EditText);
FromBinary = (EditText) findViewById(R.id.FromBinary);
ToBinary = (EditText) findViewById(R.id.ToBinary);
SwitchButton = (Button) findViewById(R.id.Switch_Button);
SwitchButton.setOnClickListener(this);
ExitButton = (Button) findViewById(R.id.Exit_Button);
ExitButton.setOnClickListener(this);
}

protected void onResume() {
super.onResume();
}

protected void onPause() {
super.onPause();
}


public void onClick(View v) {
switch (v.getId()) {
case R.id.Switch_Button:
Intent i = new Intent(this, Result.class);
String NumberStr = Number.getText().toString();
String FromBinaryStr = FromBinary.getText().toString();
String ToBinaryStr = ToBinary.getText().toString();
i.putExtra("Num", NumberStr);
i.putExtra("From", FromBinaryStr);
i.putExtra("To", ToBinaryStr);
startActivity(i);
break;
// More buttons go here (if any) ...
case R.id.Exit_Button:
finish();
break;
}
}
}


...全文
1426 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT老姜 2011-09-23
  • 打赏
  • 举报
回复
我也是遇到这个问题了, 我把我的2.2 版本的模拟器删掉 重新创建了一个就可以了
念茜 2011-07-17
  • 打赏
  • 举报
回复

代码太长了 看不下去
errno 2和17 倒是有据可依
wenzheng38 2011-07-17
  • 打赏
  • 举报
回复
报的错好像与你程序无关,底层设备没准备好,导致注册系统服务失败。。。
wenzheng38 2011-07-17
  • 打赏
  • 举报
回复
报的错好像与你程序无关,底层设备没准备好,导致注册系统服务失败。。。
progsky 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 xingjiaqingyu 的回复:]
在做一个android上的进制转换器程序,调试的时候出了这个很奇怪的错误,以下是logcat记录:

04-09 09:47:42.519: ERROR/Zygote(33): setreuid() failed. errno: 2
04-09 09:47:51.549: ERROR/Zygote(33): setreuid() failed. errno: 17
04-09 09:47:……
[/Quote]
楼主问题解决了吗?我没有任何程序,就只是启动模拟器而已,就报这些异常,导致模拟器启动不了!
J2EE_ME 2011-04-12
  • 打赏
  • 举报
回复
我和你的错误差不多,不过我是在做map的时候报错,map可以显示,但是我点击send,发送坐标之后,就报错了,然后模拟器黑屏。
xingjiaqingyu 2011-04-09
  • 打赏
  • 举报
回复

// 浮点数小数部份转换为十进制

String lessToTenSystem() throws Exception {
String strNum = Number.toUpperCase();
int JZ = Integer.parseInt(FromBinary);// 获得原数进制
double longNum = 0;
int len = strNum.length(); // 取得字符的长度
int tInt = 0; // 取第tInt个字符
int gotNum = 0; // 取出的字符转换为数字
int cfInt = -1; // 多少次次方
while (len > 0) {
String tChar = strNum.substring(tInt, tInt + 1); // 一个一个字符的取
gotNum = Integer.parseInt(letterToInteger(tChar));
// 保存出小数部份从对应的进制到十进制的总值
longNum = longNum + gotNum * (Math.pow(JZ, cfInt)); // 关键算法
tInt++; // 字符串中位置加一
len--; // 字符串总长度减一
cfInt--;
}
return String.valueOf(longNum);
}

// 返回一个浮点数的整数或者是小数部份
String returnWantPart(String doubleNum, String whichPart)
throws Exception
{
String strNum = doubleNum;
String leftStr;
String rightStr;
//如果输入的是一个浮点数
if (strNum.indexOf(".") != -1)
{
StringTokenizer fenxi = new StringTokenizer(strNum, ".");
leftStr = fenxi.nextToken();
rightStr = fenxi.nextToken();
}
else
{ //如果输入的是一个整数
leftStr = strNum;
rightStr = "0";
}
String returnStr = "";
if (whichPart.equals("left"))
returnStr = leftStr;
else if (whichPart.equals("right"))
returnStr = rightStr;
return returnStr;
}

// *****************************任意进制到十进制的转换*****************************

// *****************************十进制到任意进制的转换*****************************

String tenToAnySystem_Int(String strInt) { // 因为由任意进制到十进制的转换结果为"整数部分.小数部份"
// 也就是分成整数和小数部份分别转换
// 此函数完成的功能是十进制的整数部分到任意进制的转换
try {
// 取出整数部份
strInt = returnWantPart(strInt,"left");
} catch (Exception e) {
e.printStackTrace();
}
int JZ = Integer.parseInt(ToBinary);
long intStr = Long.parseLong(strInt);
long[] result = new long[50]; // 保存相除的余数
String resultStr = "";
int i = 0; // 数组的下标
while (intStr != 0) {
result[i] = intStr % JZ; // 取出余数
// 现数为减去余数的数整除进制
intStr = intStr - result[i];
intStr = intStr / JZ;
i++; // 数组下标增加一
}
// 将数组全部反序排列,并返回结果
for (int j1 = 0, j2 = i - 1; j1 < (i / 2); j1++, j2--) {
long temp = 0;
temp = result[j1];
result[j1] = result[j2];
result[j2] = temp;
}
for (int j = 0; j < i; j++) {
resultStr = resultStr + intToLetter(result[j]);

}
return resultStr;

}

// 此函数完成的功能是十进制的小数部分到任意进制的转换

String tenToAnySystem_Less(String strLess) {
int JZ = Integer.parseInt(ToBinary);
double T = 0;
T = Double.parseDouble(strLess);
String resultStr = "";
String strInt = "";
// 精度取到小数点后面6位为止
int JingDu = 0;
int i = 0; // 数组下标
int[] result = new int[50];
for (int j = 0; j < 50; j++)
// 将数组初使化
result[j] = 0;
try {
while (JingDu <= 6 && T > 0.000001) {
double tNum = 0;
tNum = T * JZ;
if (tNum > 1) { // 取出整数部份
try {
strInt = returnWantPart(String.valueOf(tNum), "left");
} catch (Exception e) {
e.printStackTrace();
}
result[i] = Integer.parseInt(strInt);
T = tNum - result[i]; // 将当前数减去取出来的数 ,用于下一次循环
} else {
// 如果整数小于零,那么整数部分就是0
result[i] = 0;
}
JingDu++;
i++;

}
} catch (Exception e) {
e.printStackTrace();
}
for (int j = 0; j < i; j++)
resultStr = resultStr + String.valueOf(result[j]);
if (i == 0)
return "0";
else
return resultStr;

}

// 将取得的数字转换为相应的字母

String intToLetter(long num) {
String result = "";
String S = "";
if (0 <= num && num <= 9)
result = String.valueOf(num);
else if (num > 9) {
S = String.valueOf(num); // 将长整型转换为字符串型
switch (Integer.parseInt(S)) // 将字符串型转换为整型
{
case 10:
result = "A";
break;
case 11:
result = "B";
break;
case 12:
result = "C";
break;
case 13:
result = "D";
break;
case 14:
result = "E";
break;
case 15:
result = "F";
break;
case 16:
result = "G";
break;
case 17:
result = "H";
break;
case 18:
result = "I";
break;
case 19:
result = "G";
break;
case 20:
result = "K";
break;
case 21:
result = "L";
break;
case 22:
result = "M";
break;
case 23:
result = "N";
break;
case 24:
result = "O";
break;
case 25:
result = "P";
break;
case 26:
result = "Q";
break;
case 27:
result = "R";
break;
case 28:
result = "S";
break;
case 29:
result = "T";
break;
case 30:
result = "U";
break;
case 31:
result = "V";
break;
case 32:
result = "W";
break;
case 33:
result = "X";
break;
case 34:
result = "Y";
break;
case 35:
result = "Z";
break;
}
}
return result;
}
// *****************************十进制到任意进制的转换*****************************

}

xingjiaqingyu 2011-04-09
  • 打赏
  • 举报
回复
第三个:Calculate.java

package com.Elzsx.Switch;

import java.util.StringTokenizer;

public class Calculate {

private String FromBinary = null;
private String ToBinary = null;
private String Number = null;

public Calculate(String FB, String TB, String Num) {
FromBinary = FB;
ToBinary = TB;
Number = Num;
}

// 转换方法:先将任意进制数转换为十进制数,再将十进制数转换为指定进制数(浮点数)
/*
* 1、任意进制转换为10进制的转换 分别对整数和小数部分进行转换,再将分别转换后的结果进行拼合,利用相乘相加的原则
* 整数部分:(如111的二进制到十进制就是:1*pow(2,2)+1*pow(2,1)+1*pow(2,0)) 小数部分:利用相乘相加的原则
* 2、10进制转换到任意进制的转换 分别对整数和小数部分进行转换,再将分别转换后的结果进行拼合 整数部分:利用相除取余的原则
* 小数部分:利用相乘取整的原则
*/

// *****************************任意进制到十进制的转换*****************************

// 任意进制到十进制的转换

// 保证输入的数与进制相配
boolean checkInputNumIsOK() {
int i = 0;
for (; i < Number.length(); i++) {
String Num = Number.substring(i, i + 1);
if (Integer.parseInt(Num) > Integer.parseInt(FromBinary) - 1) {
return false;
}
}
return true;
}

// 对于十进制以上的进制,由取得的字符返回相应的数字
String letterToInteger(String tChar) {
int gotNum = 0;
int kg = 0; // 确定前面该字符是不是已经赋值,这就是使用if语句所留下的后症 - -b
String S;
if (tChar.equals("A")) {
gotNum = 10;
kg = 1;
} else if (tChar.equals("B")) {
gotNum = 11;
kg = 1;
} else if (tChar.equals("C")) {
gotNum = 12;
kg = 1;
} else if (tChar.equals("D")) {
gotNum = 13;
kg = 1;
} else if (tChar.equals("E")) {
gotNum = 14;
kg = 1;
} else if (tChar.equals("F")) {
gotNum = 15;
kg = 1;
} else if (tChar.equals("G")) {
gotNum = 16;
kg = 1;
} else if (tChar.equals("H")) {
gotNum = 17;
kg = 1;
} else if (tChar.equals("I")) {
gotNum = 18;
kg = 1;
} else if (tChar.equals("J")) {
gotNum = 19;
kg = 1;
} else if (tChar.equals("K")) {
gotNum = 20;
kg = 1;
} else if (tChar.equals("L")) {
gotNum = 21;
kg = 1;
} else if (tChar.equals("M")) {
gotNum = 22;
kg = 1;
} else if (tChar.equals("O")) {
gotNum = 23;
kg = 1;
} else if (tChar.equals("P")) {
gotNum = 24;
kg = 1;
} else if (tChar.equals("Q")) {
gotNum = 25;
kg = 1;
} else if (tChar.equals("R")) {
gotNum = 26;
kg = 1;
} else if (tChar.equals("S")) {
gotNum = 27;
kg = 1;
} else if (tChar.equals("T")) {
gotNum = 28;
kg = 1;
} else if (tChar.equals("U")) {
gotNum = 29;
kg = 1;
} else if (tChar.equals("V")) {
gotNum = 30;
kg = 1;
} else if (tChar.equals("W")) {
gotNum = 31;
kg = 1;
} else if (tChar.equals("X")) {
gotNum = 32;
kg = 1;
} else if (tChar.equals("Y")) {
gotNum = 33;
kg = 1;
} else if (tChar.equals("Z")) {
gotNum = 34;
kg = 1;
} else if (kg == 0) {
gotNum = Integer.parseInt(tChar);
}
S = String.valueOf(gotNum);
return S;
}

// 浮点数的整数部份转换为十进制

String intToTenSystem() throws Exception {
String strNum = Number.toUpperCase(); // 全部转换为大写,方便字符到数字的转换
int JZ = Integer.parseInt(FromBinary);// 获得原数进制
double longNum = 0;
int len = strNum.length(); // 取得字符串的长度
int tInt = 0; // 初使化数组位置为0
int gotNum = 0; // 一个一个字符取出所对应的数字
while (len > 0) { // 如果没有将字符串的字符转换完,就继续
String tChar = strNum.substring(tInt, tInt + 1); // 一个一个字符的取
gotNum = Integer.parseInt(letterToInteger(tChar));
longNum = longNum + gotNum * (Math.pow(JZ, len - 1));
tInt++;
len--;

}
return String.valueOf(longNum);
}

// 浮点数小数部份转换为十进制

String lessToTenSystem() throws Exception {
String strNum = Number.toUpperCase();
int JZ = Integer.parseInt(FromBinary);// 获得原数进制
double longNum = 0;
int len = strNum.length(); // 取得字符的长度
int tInt = 0; // 取第tInt个字符
int gotNum = 0; // 取出的字符转换为数字
int cfInt = -1; // 多少次次方
while (len > 0) {
String tChar = strNum.substring(tInt, tInt + 1); // 一个一个字符的取
gotNum = Integer.parseInt(letterToInteger(tChar));
// 保存出小数部份从对应的进制到十进制的总值
longNum = longNum + gotNum * (Math.pow(JZ, cfInt)); // 关键算法
tInt++; // 字符串中位置加一
len--; // 字符串总长度减一
cfInt--;
}
return String.valueOf(longNum);
}

// 返回一个浮点数的整数或者是小数部份
String returnWantPart(String doubleNum, String whichPart)
throws Exception
{
String strNum = doubleNum;
String leftStr;
String rightStr;
//如果输入的是一个浮点数
if (strNum.indexOf(".") != -1)
{
StringTokenizer fenxi = new StringTokenizer(strNum, ".");
leftStr = fenxi.nextToken();
rightStr = fenxi.nextToken();
}
else
{ //如果输入的是一个整数
leftStr = strNum;
rightStr = "0";
}
String returnStr = "";
if (whichPart.equals("left"))
returnStr = leftStr;
else if (whichPart.equals("right"))
returnStr = rightStr;
return returnStr;
}

// *****************************任意进制到十进制的转换*****************************

// *****************************十进制到任意进制的转换*****************************

String tenToAnySystem_Int(String strInt) { // 因为由任意进制到十进制的转换结果为"整数部分.小数部份"
// 也就是分成整数和小数部份分别转换
// 此函数完成的功能是十进制的整数部分到任意进制的转换
try {
// 取出整数部份
strInt = returnWantPart(strInt,"left");
} catch (Exception e) {
e.printStackTrace();
}
int JZ = Integer.parseInt(ToBinary);
long intStr = Long.parseLong(strInt);
long[] result = new long[50]; // 保存相除的余数
String resultStr = "";
int i = 0; // 数组的下标
while (intStr != 0) {
result[i] = intStr % JZ; // 取出余数
// 现数为减去余数的数整除进制
intStr = intStr - result[i];
intStr = intStr / JZ;
i++; // 数组下标增加一
}
// 将数组全部反序排列,并返回结果
for (int j1 = 0, j2 = i - 1; j1 < (i / 2); j1++, j2--) {
long temp = 0;
temp = result[j1];
result[j1] = result[j2];
result[j2] = temp;
}
for (int j = 0; j < i; j++) {
resultStr = resultStr + intToLetter(result[j]);

}
return resultStr;

}

// 此函数完成的功能是十进制的小数部分到任意进制的转换

String tenToAnySystem_Less(String strLess) {
int JZ = Integer.parseInt(ToBinary);
double T = 0;
T = Double.parseDouble(strLess);
String resultStr = "";
String strInt = "";
// 精度取到小数点后面6位为止
int JingDu = 0;
int i = 0; // 数组下标
int[] result = new int[50];
for (int j = 0; j < 50; j++)
// 将数组初使化
result[j] = 0;
try {
while (JingDu <= 6 && T > 0.000001) {
double tNum = 0;
tNum = T * JZ;
if (tNum > 1) { // 取出整数部份
try {
strInt = returnWantPart(String.valueOf(tNum), "left");
} catch (Exception e) {
e.printStackTrace();
}
result[i] = Integer.parseInt(strInt);
T = tNum - result[i]; // 将当前数减去取出来的数 ,用于下一次循环
} else {
// 如果整数小于零,那么整数部分就是0
result[i] = 0;
}
JingDu++;
i++;

}
} catch (Exception e) {
e.printStackTrace();
}
for (int j = 0; j < i; j++)
resultStr = resultStr + String.valueOf(result[j]);
if (i == 0)
return "0";
else
return resultStr;

}

// 将取得的数字转换为相应的字母

String intToLetter(long num) {
String result = "";
String S = "";
if (0 <= num && num <= 9)
result = String.valueOf(num);
else if (num > 9) {
S = String.valueOf(num); // 将长整型转换为字符串型
switch (Integer.parseInt(S)) // 将字符串型转换为整型
{
case 10:
result = "A";
break;
case 11:
result = "B";
break;
case 12:
result = "C";
break;
case 13:
result = "D";
break;
case 14:
result = "E";
break;
case 15:
result = "F";
break;
case 16:
result = "G";
break;
case 17:
result = "H";
break;
case 18:
result = "I";
break;
case 19:
result = "G";
break;
case 20:
result = "K";
break;
case 21:
result = "L";
break;
case 22:
result = "M";
break;
case 23:
result = "N";
break;
case 24:
result = "O";
break;
case 25:
result = "P";
break;
case 26:
result = "Q";
break;
case 27:
result = "R";
break;
case 28:
result = "S";
break;
case 29:
result = "T";
break;
case 30:
result = "U";
break;
case 31:
result = "V";
break;
case 32:
result = "W";
break;
case 33:
result = "X";
break;
case 34:
result = "Y";
break;
case 35:
result = "Z";
break;
}
}
return result;
}
// *****************************十进制到任意进制的转换*****************************

}

xingjiaqingyu 2011-04-09
  • 打赏
  • 举报
回复
第二个:Result.java

package com.Elzsx.Switch;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Result extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
Intent intent = new Intent();
String Number = intent.getStringExtra("Num");
String FromBinary = intent.getStringExtra("From");
String ToBinary = intent.getStringExtra("To");
TextView result = (TextView)findViewById(R.id.Result_content);
try {
result.setText(Switch(FromBinary,ToBinary,Number));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}



public String Switch(String FromBinary,String ToBinary,String Number)throws Exception{
Calculate cl = new Calculate(FromBinary,ToBinary,Number);
//输入无误
if(!cl.checkInputNumIsOK()){
return "Wrong Input!";
}
String returnLeftPart; //输入数的整数部分
String returnRightPart; //输入数的小数部分
//分别取出数的左面和右面
returnLeftPart = cl.returnWantPart(Number,"left"); //取出输入数的整数部分
returnRightPart = cl.returnWantPart(Number,"right"); //取出输入数的小数部分

String anyChangedToIntSystem; //用于接收输入数的整数部分转换后的结果
String anyChangedToLessSystem; //用于接收输入数的小数部分转换后的结果
anyChangedToIntSystem = cl.intToTenSystem();
anyChangedToLessSystem = cl.lessToTenSystem();

double leftNum = Double.parseDouble(anyChangedToIntSystem);
double rightNum = Double.parseDouble(anyChangedToLessSystem);
double totalNum = leftNum + rightNum; //拼合结果
System.out.println(Number + "由" + FromBinary + "到10进制的结果是:" +
String.valueOf(totalNum));

//十进制到任意进制的转换temToAnySystem_Less
String tenChangedToAnySystemInt = "";
String tenChangedToAnySystemLess = "";
tenChangedToAnySystemInt = cl.tenToAnySystem_Int(anyChangedToIntSystem);
tenChangedToAnySystemLess = cl.tenToAnySystem_Less(anyChangedToLessSystem);
System.out.println(Number + "由" + FromBinary + "到" + ToBinary +
"进制的结果是:" + tenChangedToAnySystemInt + "." + tenChangedToAnySystemLess);
return tenChangedToAnySystemInt + "." + tenChangedToAnySystemLess;
}
}

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧