我有一个通过php API从Google日历获取信息的应用程序,问题是该应用程序可在模拟器上运行,但是当我尝试在手机上使用它时,只有一个正常的黑屏,没有任何信息。这似乎是一个连接问题(与我的第一个想法不同)。
模拟器的android版本是2.3.3,我的手机也一样。
这是我的代码:
public class AgendaActivity extends Activity {
/** Called when the activity is first created. */
public static final String CAL= "http://192.168.1.58/calendar.php";
ListView vue;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vue = (ListView) findViewById(R.id.listView1);
List<HashMap<String, String>> liste = new ArrayList<HashMap<String,String>>();
HashMap<String, String> element;
String result = getServerData(CAL);
String[] chaine = result.split(";");
for(int i=1;i<chaine.length-1;i++)
{
String[] event = chaine[i].split(":");
element = new HashMap<String, String>();
element.put("titre", event[1]);
element.put("date",event[3]+":"+event[4] );
liste.add(element);
}
ListAdapter adapter = new SimpleAdapter(this,
liste,
android.R.layout.simple_list_item_2,
new String[] {"titre", "date"},
new int[] {android.R.id.text1, android.R.id.text2 });
vue.setAdapter(adapter);
}
private String getServerData(String returnString) {
InputStream is = null;
String result = "";
File file = new File("sdcard/event.txt");
FileWriter fw;
FileReader fr;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("contact",""));
HttpResponse response=null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(returnString);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection " + e.toString());
String str = "";
int i = 0;
try {
fr =new FileReader(file);
while((i = fr.read()) != -1)
str += (char)i;
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
returnString=str;
return returnString;
}
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result " + e.toString());
}
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++)
{
JSONObject json_data = jArray.getJSONObject(i);
returnString = ""+ json_data;
}
}catch(JSONException e)
{
returnString=e.toString();
}
try {
fw = new FileWriter(file);
fw.write(returnString);
fw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return returnString; }
}
模拟器上的应用程序运行正常,但是,当我启动该应用程序时,我在错误部分获得了logcat:
04-10 15:03:56.493: E/Zygote(33): setreuid() failed. errno: 2
04-10 15:04:09.523: E/Zygote(33): setreuid() failed. errno: 17
04-10 15:04:12.363: E/BatteryService(72): usbOnlinePath not found
04-10 15:04:12.363: E/BatteryService(72): batteryVoltagePath not found
04-10 15:04:12.363: E/BatteryService(72): batteryTemperaturePath not found
04-10 15:04:12.393: E/SurfaceFlinger(72): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
04-10 15:04:12.723: E/SensorService(72): couldn't open device for module sensors (Invalid argument)
04-10 15:04:20.463: E/EventHub(72): could not get driver version for /dev/input/mouse0, Not a typewriter
04-10 15:04:20.463: E/EventHub(72): could not get driver version for /dev/input/mice, Not a typewriter
04-10 15:04:20.493: E/System(72): Failure starting core service
04-10 15:04:20.493: E/System(72): java.lang.SecurityException
04-10 15:04:20.493: E/System(72): at android.os.BinderProxy.transact(Native Method)
04-10 15:04:20.493: E/System(72): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)
04-10 15:04:20.493: E/System(72): at android.os.ServiceManager.addService(ServiceManager.java:72)
04-10 15:04:20.493: E/System(72): at com.android.server.ServerThread.run(SystemServer.java:206)
04-10 15:04:21.153: E/SoundPool(72): error loading /system/media/audio/ui/Effect_Tick.ogg
04-10 15:04:21.153: E/SoundPool(72): error loading /system/media/audio/ui/KeypressStandard.ogg
04-10 15:04:21.163: E/SoundPool(72): error loading /system/media/audio/ui/KeypressSpacebar.ogg
04-10 15:04:21.163: E/SoundPool(72): error loading /system/media/audio/ui/KeypressDelete.ogg
04-10 15:04:21.163: E/SoundPool(72): error loading /system/media/audio/ui/KeypressReturn.ogg
04-10 15:04:21.245: E/UsbObserver(72): java.lang.NullPointerException
04-10 15:04:21.245: E/UsbObserver(72): at com.android.server.UsbObserver.init(UsbObserver.java:131)
04-10 15:04:21.245: E/UsbObserver(72): at com.android.server.UsbObserver.<init>(UsbObserver.java:65)
04-10 15:04:21.245: E/UsbObserver(72): at com.android.server.ServerThread.run(SystemServer.java:402)
04-10 15:04:22.623: E/ThrottleService(72): Could not open GPS configuration file /etc/gps.conf
04-10 15:04:26.083: E/logwrapper(173): executing /system/bin/tc failed: No such file or directory
04-10 15:04:26.123: E/logwrapper(174): executing /system/bin/tc failed: No such file or directory
04-10 15:04:26.239: E/logwrapper(175): executing /system/bin/tc failed: No such file or directory
04-10 15:17:37.467: E/InputDispatcher(72): channel '407739a0 com.android.agenda/com.android.agenda.AgendaActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
04-10 15:17:37.467: E/InputDispatcher(72): channel '407739a0 com.android.agenda/com.android.agenda.AgendaActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
有任何想法吗?
最佳答案
我终于找到了问题的根源。我没有更改xampp的设置以允许从oustide进行连接,而我仅在本地工作。
关于android - Android应用程式可在模拟器上运作,但无法在手机上运作(连线问题),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10091838/