Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android java.lang.RuntimeException:Can';t在未调用Looper.prepare()的线程内创建处理程序_Android_Database_Sqlite_Xml Parsing_Android Sqlite - Fatal编程技术网

Android java.lang.RuntimeException:Can';t在未调用Looper.prepare()的线程内创建处理程序

Android java.lang.RuntimeException:Can';t在未调用Looper.prepare()的线程内创建处理程序,android,database,sqlite,xml-parsing,android-sqlite,Android,Database,Sqlite,Xml Parsing,Android Sqlite,编译时,我遇到一个java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序错误 我在谷歌上搜索了很多,但仍然找不到解决方案。 请帮我写代码 SoapObject request = new SoapObject(NAMESPACE, METHOD_GET_LOGIN_DETAILS); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnve

编译时,我遇到一个
java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序
错误

我在谷歌上搜索了很多,但仍然找不到解决方案。
请帮我写代码

SoapObject request = new SoapObject(NAMESPACE, METHOD_GET_LOGIN_DETAILS);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
request.addProperty("loginUsr", user);
request.addProperty("loginPasswd", pass);
envelope.dotNet = true; // to handle .net services asmx/aspx
envelope.setOutputSoapObject(request);
HttpTransportSE ht = new HttpTransportSE(URL_PROTOCOL + mSettings.getMmpServerpath() + URL_SERVICE_NAME);
ht.debug = true;
String soap_action = NAMESPACE + METHOD_GET_LOGIN_DETAILS;
ht.call(soap_action, envelope);
SoapPrimitive resultString = (SoapPrimitive) envelope.getResponse();
File mImpOutputFile = Supporter.getImpOutputFilePathByCompany("MobManufacturingProcess", "00",
    "FiGoodsDetails" + ".xml");
if (!mImpOutputFile.exists()) {
    Supporter.createFile(mImpOutputFile);
} else {
    mImpOutputFile.delete(); // to refresh the file
    Supporter.createFile(mImpOutputFile);
}

BufferedWriter buf = new BufferedWriter(new FileWriter(mImpOutputFile, true));

buf.append("<" + "Details" + ">");

buf.append(resultString.toString());

buf.append("</" + "Details" + ">");
result = "success";

buf.close();

} catch (

SocketTimeoutException e)

{
    result = "time out error";
    e.printStackTrace();
} catch (

IOException e)

{
    result = "input error";
    e.printStackTrace();
} catch (

XmlPullParserException e)

{
    result = "error";
    e.printStackTrace();
} catch (

Exception e)

{
    Log.e("tag", "error", e);
    result = "error";
}
new DataLoadToDBOperation().execute();
return result;

}

}

@Override
protected void onPostExecute(String result) {
    // TODO Auto-generated method stub
    /* String[] result=totVal.get(totVal.size()); */
    // super.onPostExecute(totVal);

    if (result.equals("success")) {
        new DataLoadToDBOperation().execute();

    } else {
        mToastMsg.showToast(LogInActivity.this, "Invalid Username or Password");
    }

    dialog.cancel();
}

}

private class DataLoadToDBOperation extends AsyncTask < String, String, String > {
    private String user;
    private String pass;
    private ProgressDialog dialog;

    public DataLoadToDBOperation() {
        dialog = new ProgressDialog(LogInActivity.this);
        dialog.setCancelable(false);
    }

    @Override
    protected String doInBackground(String...params) {

        String errMsg = "";

        try {

            String result = "";

            DataLoader fileLoader = new DataLoader(LogInActivity.this, mDBHelper, user);

            List < String > importFileList = mSupporter.loadImportFileList();

            int totImpFile = importFileList.size();

            File salPer_folder_path = Supporter.getImportFolderPath(user);

            List < String > compList = mSupporter.getFolderNames(salPer_folder_path);

            int compSize = compList.size();

            if (compSize != 0) {

                startDBTransaction("db data loading"); // to start db
                // transaction

                for (int c = 0; c < compList.size(); c++) {

                    String serCompName = compList.get(c);

                    for (int i = 0; i < totImpFile; i++) {

                        String fileName = importFileList.get(i);

                        if ((c > 0) && (fileName.equals("FigoodsDetail"))) { // to
                            // load
                            // FigoodsDetail
                            // data
                            // once
                            continue; // to continue for other files
                        }

                        mImpOutputFile = Supporter.getImpOutputFilePathByCompany(spCode, serCompName,
                        fileName + ".xml");

                        if (mImpOutputFile.exists()) {
                            InputStream inputStream;

                            inputStream = new FileInputStream(mImpOutputFile);
                            String[] resultArray = fileLoader.parseDocument(inputStream);

                            result = resultArray[0];
                            errMsg = resultArray[1];

                            if (!result.equals("success")) {
                                mDBHelper.mEndTransaction();
                                break;
                            }

                        } else {
                            result = "File not available";
                            mDBHelper.mEndTransaction();
                            break;
                        }

                    }

                    if (!result.equals("success")) { // to break from
                        // executing other
                        // companies
                        break;
                    }

                }
                endDBTransaction(); // to end db transaction

            } else {
                result = "File not available";
            }

            return result;
        } catch (Exception exe) {
            exe.printStackTrace();
            String errorCode = "Err-CLS-2";
            LogFileCreator.appendLog(errorCode + " : " + exe.getMessage() + "\n" + errMsg);
            String result = "error";
            return result;
        }
    }

    /*
     * @Override protected void onPostExecute(final String result) { if (dialog
     * != null) { if (dialog.isShowing()) { dialog.dismiss(); } }
     * 
     * if (result.equals("success")) {
     * 
     * mCmpnyNameList = loadListOfCompany();
     * 
     * mAdptSpnCompany = new ArrayAdapter<String>(LogInActivity.this,
     * android.R.layout.simple_dropdown_item_1line, mCmpnyNameList);
     * 
     * mSpnCompany.setAdapter(mAdptSpnCompany);
     * 
     * // to delete file after loaded to db mSupporter.deleteFileFolder(user);
     * 
     * mSupporter.navigateTo(MainMenu.class);
     * 
     * } else if (result.equals("nosd")) {
     * mToastMsg.showToast(LogInActivity.this, "Sd card required"); } else if
     * (result.equals("parsing error")) { mToastMsg
     * .showToast(LogInActivity.this, "Error during parsing the data"); } else
     * if (result.equals("File not available")) {
     * mToastMsg.showToast(LogInActivity.this, "File not available"); } else {
     * mToastMsg.showToast(LogInActivity.this, "Errorrrrrrrrr"); }
     * 
     * }
     */

    @Override
    protected void onPreExecute() {
        this.dialog.setMessage("Please wait until the data is loaded");
        this.dialog.show();
    }

    @Override
    protected void onProgressUpdate(String...values) {}
}
SoapObject请求=新的SoapObject(名称空间、方法\u获取\u登录\u详细信息);
SoapSerializationEnvelope=新的SoapSerializationEnvelope(SoapEnvelope.VER11);
request.addProperty(“loginUsr”,用户);
addProperty(“loginPasswd”,pass);
envelope.dotNet=true;//处理.net服务的步骤asmx/aspx
envelope.setOutputSoapObject(请求);
HttpTransportSE ht=新的HttpTransportSE(URL\u协议+mSettings.getMmpServerpath()+URL\u服务\u名称);
ht.debug=true;
字符串soap\u action=NAMESPACE+METHOD\u GET\u LOGIN\u DETAILS;
ht.呼叫(soap_动作、信封);
SoapPrimitive结果字符串=(SoapPrimitive)信封。getResponse();
File mImpOutputFile=Supporter.getImpOutputFilePathByCompany(“MobManufacturingProcess”,“00”,
“FiGoodsDetails”+“.xml”);
如果(!mImpOutputFile.exists()){
Supporter.createFile(mImpOutputFile);
}否则{
mImpOutputFile.delete();//刷新文件
Supporter.createFile(mImpOutputFile);
}
BufferedWriter buf=new BufferedWriter(new FileWriter(mimoutputfile,true));
buf.追加(“”);
追加(resultString.toString());
buf.追加(“”);
结果=“成功”;
buf.close();
}抓住(
SocketTimeoutException(例外)
{
结果=“超时错误”;
e、 printStackTrace();
}抓住(
IOE除外)
{
结果=“输入错误”;
e、 printStackTrace();
}抓住(
XMLPullParseRexE)
{
result=“error”;
e、 printStackTrace();
}抓住(
例外情况(e)
{
Log.e(“标记”、“错误”,e);
result=“error”;
}
新建DataLoadToDBOperation().execute();
返回结果;
}
}
@凌驾
受保护的void onPostExecute(字符串结果){
//TODO自动生成的方法存根
/*字符串[]结果=totVal.get(totVal.size())*/
//super.onPostExecute(totVal);
如果(结果等于(“成功”)){
新建DataLoadToDBOperation().execute();
}否则{
mToastMsg.showtoos(LogInActivity.this,“无效用户名或密码”);
}
dialog.cancel();
}
}
私有类DataLoadToDBOperation扩展了AsyncTask{
私有字符串用户;
私人串通;
私人对话;
公共数据加载ToDBOperation(){
dialog=新建ProgressDialog(LogInActivity.this);
对话框。可设置可取消(false);
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
字符串errMsg=“”;
试一试{
字符串结果=”;
DataLoader fileLoader=新的DataLoader(LogInActivity.this,mDBHelper,user);
ListimportFileList=mSupporter.loadImportFileList();
int-totImpFile=importFileList.size();
文件salPer\u folder\u path=Supporter.getImportFolderPath(用户);
ListcompList=mSupporter.getFolderNames(salPer\u folder\u路径);
int compSize=compList.size();
如果(compSize!=0){
startDBTransaction(“db数据加载”);//启动db
//交易
对于(int c=0;c0)和(&&(fileName.equals(“FigoodsDetail”)){//to
//装载
//菲古德斯代尔酒店
//资料
//一次
continue;//继续处理其他文件
}
mImpOutputFile=Supporter.getImpOutputFilePathByCompany(spCode,serCompName,
文件名+“.xml”);
如果(mImpOutputFile.exists()){
输入流输入流;
inputStream=新文件inputStream(MIMOutPutFile);
字符串[]resultArray=fileLoader.parseDocument(inputStream);
结果=结果数组[0];
errMsg=resultArray[1];
如果(!result.equals(“success”)){
mDBHelper.mEndTransaction();
打破
}
}否则{
result=“文件不可用”;
mDBHelper.mEndTransaction();
打破
}
}
如果(!result.equals(“success”){//
//执行其他
//公司
打破
}
}
endDBTransaction();//结束数据库事务
}否则{
result=“文件不可用”;
}
返回结果;
}捕获(异常exe){
exe.printStackTrace();
字符串errorCode=“Err-CLS-2”;
LogFileCreator.appendLog(错误代码+”:“+exe.getMessage()+”\n“+errMsg);
字符串result=“error”;
返回结果;
}
}
/*
*@Override protected void onPostExecute(最终字符串结果){if(对话框
*!=null){if(dialog.isShowing()){dialog.dismise();}
* 
*如果(结果等于(“成功”)){
* 
*mCmpnyNameList=loadListOfCompany();
* 
*mAdptSpnCompany=新阵列适配器(LogInActivity.this,
*android.R.layout.simple_下拉列表_item_1line,mCmpnyNameList);
* 
*mSpnCompany.setAdapter(mAdptSpnCompany);
* 
*//加载到db mSupporter.deleteFileFolder后删除文件(
new DataLoadToDBOperation().execute();