Java 应用程序在2.2 API级别以外的仿真器上不工作
我已经创建了一个应用程序。它在安卓2.2上运行良好。当我使用API高于2.2的emulator时,它运行正常,但一些下载代码没有执行。它没有在SQLite中存储任何数据。不过,所有功能在Android 2.2上都能正常工作。错误是在我的代码上还是在模拟器上Java 应用程序在2.2 API级别以外的仿真器上不工作,java,android,sqlite,Java,Android,Sqlite,我已经创建了一个应用程序。它在安卓2.2上运行良好。当我使用API高于2.2的emulator时,它运行正常,但一些下载代码没有执行。它没有在SQLite中存储任何数据。不过,所有功能在Android 2.2上都能正常工作。错误是在我的代码上还是在模拟器上 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> 这是我的密码 helper=new DBHelper(this);
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
这是我的密码
helper=new DBHelper(this);
try
{
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // getting XML
Document doc = parser.getDomElement(xml); // getting DOM element
NodeList nl = doc.getElementsByTagName(KEY_TAG);
db=helper.getReadableDatabase();
Cursor c=db.query(DBHelper.Old_Data, new String [] {DBHelper.Old_id,DBHelper.OLD_NUM}, DBHelper.Old_id+"=?",new String [] {1+""}, null, null, null);
if(c != null)
{
c.moveToFirst();
}
String strIndex = c.getString(1);
int index = Integer.parseInt(strIndex);
c.close();
i=0;
Log.d("Index , Length ",index + " , " + nl.getLength());
for (i = index; i < nl.getLength(); i++)
{
Element e = (Element) nl.item(i);
ContentValues val = new ContentValues();
val.put(DBHelper.TEST, parser.getValue(e, TEST));
val.put(DBHelper.FILE, parser.getValue(e, FILE));
val.put(DBHelper.TEST_NO, parser.getValue(e, TEST_NO));
val.put(DBHelper.FILE_URL, parser.getValue(e, EXAM_URL));
db=helper.getWritableDatabase();
db.insert(DBHelper.EXAM_DATA, null, val);
db.close();
}
if(i != index)
{
db=helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DBHelper.OLD_NUM, i);
db.update(DBHelper.Old_Data, values, DBHelper.Old_id+"=?", new String [] {1+""});
db.close();
}
else
{
Toast.makeText(UserProfile.this, "No Exam Available", Toast.LENGTH_LONG).show();
}
}
catch (NullPointerException ne)
{
Toast.makeText(this, "NPE", Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(this, "E", Toast.LENGTH_LONG).show();
}
helper=newdbhelper(这个);
尝试
{
XMLParser=新的XMLParser();
字符串xml=parser.getXmlFromUrl(URL);//获取xml
Document doc=parser.getDomeElement(xml);//获取DOM元素
NodeList nl=doc.getElementsByTagName(键标记);
db=helper.getReadableDatabase();
游标c=db.query(DBHelper.Old_数据,新字符串[]{DBHelper.Old_id,DBHelper.Old_NUM},DBHelper.Old_id+“=?”,新字符串[]{1+”},null,null,null);
如果(c!=null)
{
c、 moveToFirst();
}
strIndex=c.getString(1);
int index=Integer.parseInt(strIndex);
c、 close();
i=0;
Log.d(“Index,Length”,Index+,“+nl.getLength());
对于(i=index;i
如果您执行的任务类似于解析/下载数据,请使用asynctask。使用asynctask doinbackground方法下载或解析您的数据您所说的“运行正常,但sime下载代码未执行”是什么意思?请发布您的代码。没有完全理解您所说的内容。能否向我们展示一些相关代码?在更高的API上运行时,logcat会说些什么。我认为您得到的是NetworkOnMainThreadException
<代码>当应用程序试图在其主线程上执行网络操作时引发的异常。Api-11中已添加此项。请避免使用主线程的后台进程,而不要使用。是的。在AsyncTask
中执行所有网络处理。是的,您可以尝试将这些代码放入doInBackground()
中,并首先进行测试。首先粘贴代码。在android版本4.0及更高版本中,您需要在AsyncTaskReference中解析数据。是的…将其放入asyntask doInBackground()中2.2中发生了什么??