Вставки в таблицу базы данных, исключение 19 и физическое расположение - PullRequest
0 голосов
/ 17 июня 2011

Я создал помощник базы данных, подобный указанному по этой ссылке:
Создание и использование баз данных в Android .

Я тестировал программой на своем планшете Android ACER через USB-соединение.Я открыл свою базу данных - я ДУМАЮ - и закрыл ее.

Однако я не могу получить вещь для вставки таблицы: я получаю возврат -1 с кодом исключения 19.

И: Я не могу найти базу данных на планшете.Каталог / data пуст.

Я прочитал все, что могу найти в SQL Lite и базах данных на этом сайте и в Интернете в целом.Ничто не работает, ничего не объясняется.

Вопрос 1: что такое исключение 19 и как мне это исправить?Вопрос 2: почему я не могу найти свою базу данных на планшете?

Спасибо.

По запросу: вот мой код для dbHelper.Мне пришлось сократить его, потому что оригинал был слишком велик для отправки:

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBAdapter {

    private static final String TAG = "DBAdapter";
    private static final String DATABASE_NAME = "vardata";
    private static final String DATABASE_TABLE_1 = "inspection";
    private static final String DATABASE_TABLE_2 = "fedexvehicles";
    private static final String DATABASE_TABLE_3 = "attachments";
    private static final String DATABASE_TABLE_4 = "nonvehicles";
    private static final String DATABASE_TABLE_5 = "property";
    private static final String DATABASE_TABLE_6 = "people";
    private static final String DATABASE_TABLE_7 = "photos";
    private static final String DATABASE_TABLE_8 = "notes";
    private static final int DATABASE_VERSION = 1;
    public static final String KEY_ROW_ID = "_id";
    public static final String KEY_INSPECTION_ID = "_id";
    public static final String KEY_INSPECTION_ACCDATE = "accdate";
    public static final String KEY_INSPECTION_ACCTIME = "acctime";
    public static final String KEY_INSPECTION_NOTIFIED = "notified";
    public static final String KEY_INSPECTION_ARRIVED = "arrived";
    public static final String KEY_INSPECTION_ACCTYPE = "acctype";
    public static final String KEY_INSPECTION_GATE = "gate";
    public static final String KEY_INSPECTION_ROADSURFACE = "roadsurface";
    public static final String KEY_INSPECTION_ROADTYPE = "roadtype";
    public static final String KEY_INSPECTION_WEATHER = "weather";
    public static final String KEY_INSPECTION_TRAFFIC = "traffic";
    public static final String KEY_INSPECTION_LIGHTING = "lighting";
    public static final String KEY_INSPECTION_HAZMAT = "hazmat";
    public static final String KEY_INSPECTION_MANAGER = "manager";
    public static final String KEY_INSPECTION_SPEEDLIMIT = "speedlimit";
    public static final String KEY_INSPECTION_POLICE = "police";
    public static final String KEY_INSPECTION_POLICEDEPARTMENT = "policedepartment";
    public static final String KEY_INSPECTION_POLICEOFFICER = "policeofficer";
    public static final String KEY_INSPECTION_POLICEBADGE = "policebadge";
    public static final String KEY_INSPECTION_POLICEREPORT = "policereport";
    public static final String KEY_INSPECTION_FEDEXVEHICLES = "fedexvehicles";
    public static final String KEY_INSPECTION_ATTACHED = "attached";
    public static final String KEY_INSPECTION_NONVEHICLES = "nonvehicles";
    public static final String KEY_INSPECTION_PROPERTY = "property";
    public static final String KEY_INSPECTION_INJURED = "injured";
    public static final String KEY_INSPECTION_WITNESSES = "witnesses";
    public static final String KEY_INSPECTION_PHOTOS = "photos";
    public static final String KEY_INSPECTION_COMPLETED = "completed";
    //I created constants for all the table fields, but removed them here due to size

    private static final String DATABASE_CREATE_TABLE_1 =
        "create table inspection (_id integer primary key autoincrement, "
        + "accdate text not null, acctime text not null, " 
        + "notified text not null, arrived text not null, "
        + "acctype text not null, location text not null, "
        + "gate text not null, roadcondition text not null, "
        + "roadsurface text not null, roadtype text not null, "
        + "weather text not null, traffic text not null, "
        + "lighting text not null, hazmat text not null, "
        + "manager text not null, speedlimit text not null, "
        + "police text not null, policedepartment text not null, "
        + "policeofficer text not null, policebadge text not null, "
        + "policereport text not null, fedexvehicles text not null, "
        + "attached text not null, nonvehicles text not null, "
        + "property text not null, injured text not null, "
        + "witnesses text not null, photos text not null, "
    + "completed text not null);";

    private static final String DATABASE_CREATE_TABLE_2 =
        "create table fedexvehicles (_id integer primary key autoincrement, "
        + "investigationkey text not null, vehiclenumber text not null, " 
        + "vehicletype text not null, assetnumber text not null, "
        + "vehicleaction text not null, speed text not null, "
        + "interaction text not null, objectstruck text not null, "
        + "damagetype text not null, damagelocationgeneral text not null, "
        + "damagelocationspecific text not null, guideperson text not null, "
        + "passengersfed text not null, passengersnon text not null, "
        + "wheeledgse text not null, carriedgse text not null, "
        + "damagedattachments text not null, driver text not null, "
        + "driverslicense text not null, driverslicensestate text not null, "
        + "driverslicensedate text not null, seatbelt text not null, "
        + "citation text not null, preventable text not null, "
        + "vio1 text not null, vio2 text not null, "
        + "vio3 text not null, vio4 text not null, "
        + "vio5 text not null, vio6 text not null, "
        + "vio7 text not null, vio8 text not null, "
        + "vio9 text not null, vio10 text not null, "
        + "vio11 text not null, vio12 text not null, "
        + "vio13 text not null, vio14 text not null, "
        + "vio15 text not null, vio16 text not null, "
        + "vio17 text not null, vio18 text not null, "
        + "vio19 text not null, vio20 text not null, "
        + "vio21 text not null, vio22 text not null, "
        + "completed text not null);";

    private static final String DATABASE_CREATE_TABLE_3 =
        "create table attachments (_id integer primary key autoincrement, "
        + "investigationkey text not null, vehiclekey text not null, " 
        + "attachmenttype text not null, assetnumber text not null, "
        + "interaction text not null, objectstruck text not null, "
        + "damagetype text not null, damagelocationgeneral text not null, "
        + "damagelocationspecific text not null, dollyonstring text not null, "
        + "positiononstring text not null, positionondolly text not null, "
        + "attachmentnumber text not null, completed text not null);";

    private static final String DATABASE_CREATE_TABLE_4 =
        "create table nonvehicles (_id integer primary key autoincrement, "
        + "investigationkey text not null, vehiclenumber text not null, " 
        + "vin text not null, text vehmake not null, "
        + "vehmodel text not null, vehyear text not null, "
        + "plate text not null, platestate text not null, "
        + "vehicleaction text not null, speed text not null, "
        + "damagetype text not null, damagelocation text not null, "
        + "damagepart text not null, towed text not null, "
        + "owner text not null, insurance text not null, "
        + "insurancephone text not null, policy text not null, "
        + "policydate text not null, driver text not null, "
        + "driverslicense text not null, driverslicensestate text not null, "
        + "driverslicensedate text not null, citation text not null, "
        + "passengersfed text not null, passengersnon text not null, "
        + "completed text not null);";

    private static final String DATABASE_CREATE_TABLE_5 =
        "create table property (_id integer primary key autoincrement, "
        + "investigationkey text not null, owner text not null, " 
        + "propertytype text not null, propertydamage text not null, "
        + "propertynumber text not null, completed text not null);";

    private static final String DATABASE_CREATE_TABLE_6 =
        "create table people (_id integer primary key autoincrement, "
        + "investigationkey text not null, persontype text not null, " 
        + "employeeid text not null, personname text not null, "
        + "personaddress text not null, personcity text not null, "
        + "personstate text not null, personzip text not null, "
        + "personphone text not null, injured text not null);";

    private static final String DATABASE_CREATE_TABLE_7 =
        "create table photos (_id integer primary key autoincrement, "
        + "investigationkey text not null, photofilename text not null, " 
        + "photolocation text not null, photodirection text not null, "
        + "photocaption text not null);";

    private static final String DATABASE_CREATE_TABLE_8 =
        "create table notes (_id integer primary key autoincrement, "
        + "investigationkey text not null, notetext text not null);"; 

    private final Context context;
    private DatabaseHelper DBHelper;
    private SQLiteDatabase db;

    public DBAdapter(Context ctx) 
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }

    private static class DatabaseHelper extends SQLiteOpenHelper 
    {
        DatabaseHelper(Context context) 
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) 
        {
            db.execSQL(DATABASE_CREATE_TABLE_1);
            db.execSQL(DATABASE_CREATE_TABLE_2);
            db.execSQL(DATABASE_CREATE_TABLE_3);
            db.execSQL(DATABASE_CREATE_TABLE_4);
            db.execSQL(DATABASE_CREATE_TABLE_5);
            db.execSQL(DATABASE_CREATE_TABLE_6);
            db.execSQL(DATABASE_CREATE_TABLE_7);
            db.execSQL(DATABASE_CREATE_TABLE_8);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, 
                          int newVersion) 
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion 
                  + " to "
                  + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS investigation");
            db.execSQL("DROP TABLE IF EXISTS fedexvehicles");
            db.execSQL("DROP TABLE IF EXISTS attachments");
            db.execSQL("DROP TABLE IF EXISTS nonvehicles");
            db.execSQL("DROP TABLE IF EXISTS property");
            db.execSQL("DROP TABLE IF EXISTS people");
            db.execSQL("DROP TABLE IF EXISTS photos");
            db.execSQL("DROP TABLE IF EXISTS notes");
            onCreate(db);
        }
    }    


//---opens the database---

    public DBAdapter open() throws SQLException 
    {


        db = DBHelper.getWritableDatabase();



        return this;
    }


//---closes the database---    

    public void close() 
    {
        DBHelper.close();
    }


//---insert an inspection into the database---

    public long insertinspection(String acDat, String acNot) 
    {

        ContentValues initialValues = new ContentValues();
        try{
        initialValues.put(KEY_INSPECTION_ACCDATE, acDat);        
        initialValues.put(KEY_INSPECTION_ACCTIME, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_NOTIFIED, "acNot");
        initialValues.put(KEY_INSPECTION_ARRIVED, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_ACCTYPE, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_GATE, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_ROADSURFACE, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_ROADTYPE, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_WEATHER, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_TRAFFIC, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_LIGHTING, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_HAZMAT, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_MANAGER, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_SPEEDLIMIT, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_POLICE, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_POLICEDEPARTMENT, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_POLICEOFFICER, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_POLICEBADGE, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_POLICEREPORT, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_FEDEXVEHICLES, ONE_STRING);
        initialValues.put(KEY_INSPECTION_ATTACHED, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_NONVEHICLES, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_PROPERTY, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_INJURED, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_WITNESSES, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_PHOTOS, EMPTYSTRING);
        initialValues.put(KEY_INSPECTION_COMPLETED, FALSE_STRING);
        } catch (Exception e)       
        {       
            Log.e("ERROR", "DATABASE ERROR: " + e.toString());
            e.printStackTrace();
        }

        return db.insert(DATABASE_TABLE_1, null, initialValues);
    }

    //---insert a FedEx Vehicle into the database---

    public long insertFedVeh(String inspectionKey, String vehiclenumber) 
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_FEDVEHICLE_INVESTIGATIONKEY, inspectionKey);
        initialValues.put(KEY_FEDVEHICLE_VEHICLENUMBER, vehiclenumber);
        initialValues.put(KEY_FEDVEHICLE_VEHICLETYPE, "");
        initialValues.put(KEY_FEDVEHICLE_ASSETNUMBER, "");
        initialValues.put(KEY_FEDVEHICLE_VEHICLEACTION, "");
        initialValues.put(KEY_FEDVEHICLE_SPEED, "");
        initialValues.put(KEY_FEDVEHICLE_INTERACTION, "");
        initialValues.put(KEY_FEDVEHICLE_OBJECTSTRUCK, "");
        initialValues.put(KEY_FEDVEHICLE_DAMAGETYPE, "");
        initialValues.put(KEY_FEDVEHICLE_DAMAGELOCATIONGENERAL, "");
        initialValues.put(KEY_FEDVEHICLE_DAMAGELOCATIONSPECIFIC, "");
        initialValues.put(KEY_FEDVEHICLE_GUIDEPERSON, "");
        initialValues.put(KEY_FEDVEHICLE_PASSENGERSFED, "0");
        initialValues.put(KEY_FEDVEHICLE_PASSENGERSNON, "0");
        initialValues.put(KEY_FEDVEHICLE_WHEELEDGSE, "0");
        initialValues.put(KEY_FEDVEHICLE_CARRIEDGSE, "0");
        initialValues.put(KEY_FEDVEHICLE_DAMAGEDATTACHMENTS, "0");
        initialValues.put(KEY_FEDVEHICLE_DRIVER, "");
        initialValues.put(KEY_FEDVEHICLE_DRIVERSLICENSE, "");
        initialValues.put(KEY_FEDVEHICLE_DRIVERSLICENSESTATE, "");
        initialValues.put(KEY_FEDVEHICLE_DRIVERSLICENSEDATE, "");
        initialValues.put(KEY_FEDVEHICLE_SEATBELT, "");
        initialValues.put(KEY_FEDVEHICLE_CITATION, "");
        initialValues.put(KEY_FEDVEHICLE_PREVENTABLE, "");
        initialValues.put(KEY_FEDVEHICLE_VIO1, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO2, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO3, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO4, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO5, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO6, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO7, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO8, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO9, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO10, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO11, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO12, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO13, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO14, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO15, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO16, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO17, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO18, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO19, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO20, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO21, "false");
        initialValues.put(KEY_FEDVEHICLE_VIO22, "false");
        initialValues.put(KEY_FEDVEHICLE_COMPLETED, "false");
        return db.insert(DATABASE_TABLE_2, null, initialValues);
    }

    //---I also created methods to insert each table, but removed them here for size ---

   //---deletes a particular inspection---

    public boolean deleteInspection(long rowId) 
    {
        return db.delete(DATABASE_TABLE_1, KEY_INSPECTION_ID + 
            "=" + rowId, null) > 0;
    }

    //---deletes a particular FedEx Vehicle---

    public boolean deleteFedVehicle(long rowId) 
    {
        return db.delete(DATABASE_TABLE_2, KEY_FEDVEHICLE_ID + 
            "=" + rowId, null) > 0;
    }

    //---deletes a particular Attachment---

    public boolean deleteAttach(long rowId) 
    {
        return db.delete(DATABASE_TABLE_3, KEY_ATTACHMENTS_ID + 
            "=" + rowId, null) > 0;
    }

    //---deletes a particular Non FedEx Vehicle---

    public boolean deleteNonVehicle(long rowId) 
    {
        return db.delete(DATABASE_TABLE_4, KEY_NONVEHICLES_ID + 
            "=" + rowId, null) > 0;
    }

    //---deletes a particular Property---

    public boolean deleteProperty(long rowId) 
    {
        return db.delete(DATABASE_TABLE_5, KEY_PROPERTY_ID + 
            "=" + rowId, null) > 0;
    }

    //---deletes a particular Person---

    public boolean deletePeople(long rowId) 
    {
        return db.delete(DATABASE_TABLE_6, KEY_PEOPLE_ID + 
            "=" + rowId, null) > 0;
    }

    //---deletes a particular Photo---
    public boolean deletePhoto(long rowId) 
    {
        return db.delete(DATABASE_TABLE_7, KEY_PHOTOS_ID + 
            "=" + rowId, null) > 0;
    }

    //---deletes a particular Note---
    public boolean deleteNote(long rowId) 
    {
        return db.delete(DATABASE_TABLE_8, KEY_NOTES_ID + 
            "=" + rowId, null) > 0;
    }

    //---retrieves all the Inspections---

    public Cursor getAllInspections() 
    {
        return db.query(DATABASE_TABLE_1, new String[] {
                KEY_INSPECTION_ID, 
                KEY_INSPECTION_ACCDATE,
                KEY_INSPECTION_NOTIFIED}, 
                null, 
                null, 
                null, 
                null, 
                null);
    }

    //---retrieves all Persons---

    public Cursor getAllPeople(String investigationKey) 
    {
        return db.query(DATABASE_TABLE_6, new String[] {
                KEY_PEOPLE_PERSONNAME, 
                KEY_PEOPLE_EMPLOYEEID}, 
                null, 
                null, 
                null, 
                null, 
                null);
    }

    //---retrieves all Employees---

    public Cursor getAllEmployees(String investigationKey) 
    {
        return db.query(DATABASE_TABLE_6, new String[] {
                KEY_PEOPLE_PERSONNAME, 
                KEY_PEOPLE_EMPLOYEEID}, 
                KEY_PEOPLE_EMPLOYEEID + "<> 0", 
                null, 
                null, 
                null, 
                null);
    }

    //---retrieves all Non Persons---

    public Cursor getAllPersons(String investigationKey) 
    {
        return db.query(DATABASE_TABLE_6, new String[] {
                KEY_PEOPLE_PERSONNAME}, 
                KEY_PEOPLE_EMPLOYEEID + "= 0", 
                null, 
                null, 
                null, 
                null);
    }

    //---retrieves a particular inspection---

    public Cursor getInspection(long investigationKey) throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE_1, null, 
                        KEY_INSPECTION_ID + "=" + investigationKey, 
                        null,
                        null, 
                        null, 
                        null, 
                        null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    //---retrieves a particular fedexvehicle---
    public Cursor getFedVehicle(String investigationKey, String vehicleNumber) throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE_2, null, 
                        KEY_FEDVEHICLE_INVESTIGATIONKEY + "=" + investigationKey+" AND "+KEY_FEDVEHICLE_VEHICLENUMBER+"="+vehicleNumber, 
                        null,
                        null, 
                        null, 
                        null, 
                        null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

  //---retrieves a particular attachment---

    public Cursor getAttachment(String investigationKey, String vehicleNumber, String attachmentNumber) throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE_3, null, 
                        KEY_ATTACHMENTS_INVESTIGATIONKEY + "=" + investigationKey+" AND "+KEY_ATTACHMENTS_VEHICLEKEY+"="+vehicleNumber+" AND "+KEY_ATTACHMENTS_ATTACHMENTNUMBER+"="+attachmentNumber, 
                        null,
                        null, 
                        null, 
                        null, 
                        null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    //---retrieves a particular NonFedExVehicle---

     public Cursor getNonVehicle(String investigationKey, String vehicleNumber) throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE_4, null, 
                        KEY_NONVEHICLES_INVESTIGATIONKEY + "=" + investigationKey+" AND "+KEY_NONVEHICLES_VEHICLENUMBER+"="+vehicleNumber, 
                        null,
                        null, 
                        null, 
                        null, 
                        null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    //---retrieves a particular property---

    public Cursor getProperty(String investigationKey, String propertyNumber) throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE_5, null, 
                        KEY_PROPERTY_INVESTIGATIONKEY + "=" + investigationKey+" AND "+KEY_PROPERTY_PROPERTYNUMBER+"="+propertyNumber+" AND "+KEY_ATTACHMENTS_ATTACHMENTNUMBER+"="+propertyNumber, 
                        null,
                        null, 
                        null, 
                        null, 
                        null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    //---retrieves a particular Person---

    public Cursor getPerson(String investigationKey, String personName, String employeeID) throws SQLException 
    {
        Cursor mCursor =
                db.query(true, DATABASE_TABLE_6, null, 
                        KEY_PEOPLE_INVESTIGATIONKEY + "=" + investigationKey + " AND " + KEY_PEOPLE_EMPLOYEEID + " = " + employeeID + " AND " +     KEY_PEOPLE_PERSONNAME + " = " + personName, 
                        null,
                        null, 
                        null, 
                        null, 
                        null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

        //---updates a Field---

    public boolean updateField(long rowId, String tablename, String fieldname, String newdata) 
    {
        ContentValues args = new ContentValues();
        args.put(fieldname, newdata);
        return db.update(tablename, args, 
                         KEY_ROW_ID + "=" + rowId, null) > 0;
    }

}

1 Ответ

0 голосов
/ 17 июня 2011
  1. Ошибка 19 в том, что вы вставляете дубликат записи, см. этот ответ .Тем не менее, мы сможем помочь вам намного лучше, если вы разместите код, который на самом деле вызывает ошибку.
  2. Невозможно просмотреть папку / data на неподключенном устройстве.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...