本文介绍了无法找到供应商信息为<定制的提供商GT;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看了刚才的一切有在这里找到在这个问题上,没有得到过去,这

我有一个简单的应用程序开始的 MainActivity ,我的内容提供商中正确定义的Andr​​oidManifest.xml 的ContentProvider 类似乎alrighty ......这已经在运行4.3的Nexus I9250和华硕便笺运行测试4.2.1以及VDevices运行果冻豆。该应用程序在每一个实例中运行,不死机,给了我 LogCat中的唯一事情就是无法找到de.somename.provider供应商信息在哪里我的片段中的一个尝试查询内容提供商并获得光标点。在这里,code:

的Andr​​oidManifest.xml

 <?XML版本=1.0编码=UTF-8&GT?;

 <采用-SDK安卓的minSdkVersion =14
          机器人:targetSdkVersion =18/><应用机器人:allowBackup =真
             机器人:图标=@绘制/ ic_launcher
             机器人:标签=@字符串/ APP_NAME
             机器人:主题=@风格/ AppTheme>
    <活动机器人:名字=de.somename.hvk3.MainActivity
              机器人:标签=@字符串/ APP_NAME>
              &所述;意图滤光器>
                  <作用机器人:名字=android.intent.action.MAIN/>
                  <类机器人:名字=android.intent.category.LAUNCHER/>
              < /意向滤光器>< /活性GT;
    <活动机器人:名字=de.somename.hvk3.UserSettingActivity
              机器人:标签=@字符串/设置>< /活性GT;
    <供应商的android:当局=de.somename.provider
              机器人:启用=真
              机器人:多进程=真
              机器人:名字=。hvkContentProvider
              机器人:出口=真正的>< /提供商GT;
< /用途>

hvkContentProvider.java

 公共类hvkContentProvider扩展ContentProvider的{私有静态最后弦乐DATABASE_NAME =hvkDB;
私有静态最终诠释DATABASE_VERSION = 1;
公共静态最后弦乐管理局=de.somename.provider;
公共静态最后弦乐ElementPath =/ hv_kontakte;
公共静态最终乌里CONTENT_URI = Uri.parse(内容://+ +管理局ElementPath);
私有静态最终诠释ALLROWS = 1;
私有静态最终诠释SINGLE_ROW = 2;私有静态最终UriMatcher suriMatcher =新UriMatcher(UriMatcher.NO_MATCH);
静态{
    suriMatcher.addURI(de.somename.provider,ElementPath,ALLROWS);
    suriMatcher.addURI(de.somename.provider,ElementPath +/#,SINGLE_ROW);
}公共静态最后弦乐KEY_ID =_id;
公共静态最后弦乐为key_type =类型;
公共静态最后弦乐KEY_CLTYP =cltyp;
公共静态最后弦乐KEY_MDT =MDT;
公共静态最后弦乐KEY_OBJ =目标文件;
公共静态最后弦乐KEY_VTR =VTR;
公共静态最后弦乐KEY_FKZ =FKZ;
公共静态最后弦乐KEY_NAME =名;
公共静态最后弦乐KEY_VNAME =VNAME;
公共静态最后弦乐KEY_TEL =电话;
公共静态最后弦乐KEY_FAX =传真;
公共静态最后弦乐KEY_MOBIL =美孚
公共静态最后弦乐KEY_EMAIL =电子邮件;私人MySQLiteOpenHelper myOpenHelper;@覆盖
公共布尔的onCreate(){    myOpenHelper =新MySQLiteOpenHelper(的getContext(),DATABASE_NAME,空,DATABASE_VERSION);
    返回true;
}@覆盖
公共光标查询(URI URI,字符串[]投影,字符串的选择,
        的String [] selectionArgs两个,字符串中将sortOrder){    SQLiteDatabase分贝= myOpenHelper.getReadableDatabase();    字符串GROUPBY = NULL;
    字符串有= NULL;
    SQLiteQueryBuilder的QueryBuilder =新SQLiteQueryBuilder();
    queryBuilder.setTables(MySQLiteOpenHelper.DATABASE_TABLE);    开关(suriMatcher.match(URI)){
    案例SINGLE_ROW:
        字符串ROWID = uri.getPathSegments()得到(1)。
        queryBuilder.appendWhere(KEY_ID +=+ ROWID);
    默认:打破;
    }    光标光标= queryBuilder.query(分贝,投影,选择,selectionArgs两个,GROUPBY,HAVING中将sortOrder);    返回游标;
}@覆盖
公众诠释删除(URI URI,选择字符串,字符串[] selectionArgs两个){
    SQLiteDatabase分贝= myOpenHelper.getWritableDatabase();
    开关(suriMatcher.match(URI)){
    案例SINGLE_ROW:
        字符串ROWID = uri.getPathSegments()得到(1)。
        选择= KEY_ID +=+ ROWID
                +(!TextUtils.isEmpty(选择)?
                AND(+选择+')':);
    默认:打破;
    }
    //返回删除的项目的数量,您必须指定一个where子句。要删除所有行和1返回一个值通
    如果(选择== NULL)
        选择=1;    返回db.delete(MySQLiteOpenHelper.DATABASE_TABLE,选择selectionArgs两个);
}@覆盖
公共乌里插入(URI URI,ContentValues​​值){    SQLiteDatabase分贝= myOpenHelper.getWritableDatabase();
    字符串nullColumnHack = NULL;
    长ID = db.insert(MySQLiteOpenHelper.DATABASE_TABLE,nullColumnHack,价值观);    如果(ID -1个){
        乌里insertedId = ContentUris.withAppendedId(CONTENT_URI,身份证);
        。的getContext()getContentResolver()有NotifyChange(insertedId,NULL);
        返回insertedId;
    }
    其他
        返回null;
}@覆盖
公众诠释更新(开放的URI,ContentValues​​值,字符串的选择,
        的String [] selectionArgs两个){    SQLiteDatabase分贝= myOpenHelper.getWritableDatabase();    开关(suriMatcher.match(URI)){
    案例SINGLE_ROW:
        字符串ROWID = uri.getPathSegments()得到(1)。
        选择= KEY_ID +=+ ROWID
            +(!TextUtils.isEmpty(选择)?
            AND(+选择+')':);
    默认:打破;
    }    返回db.update(MySQLiteOpenHelper.DATABASE_TABLE,价值观,选择,selectionArgs两个);
}@覆盖
公共字符串的getType(URI URI){
    开关(suriMatcher.match(URI)){
    案例ALLROWS:
        返回vnd.android.cursor.dir / vnd.somename.contacts
    案例SINGLE_ROW:
        返回vnd.android.cursor.item / vnd.somename.contacts
    默认:
        抛出新抛出:IllegalArgumentException(不支持的URI:+ URI);
    }
}@覆盖
公共ParcelFileDescriptor中openFile(URI URI,字符串模式)抛出FileNotFoundException异常{    //查找行ID,并把它作为一个文件名
    字符串ROWID = uri.getPathSegments()得到(1)。    //创建的应用程序外部文件目录下的文件对象
    字符串picsDir = Environment.DIRECTORY_PICTURES;
    档案文件=新的文件(的getContext()getExternalFilesDir(picsDir),ROWID);    如果(!file.exists()){
        尝试{
            file.createNewFile();
        }赶上(IOException异常五){
            //Log.d(TAG,文件创建失败:+ e.getMessage());
        }
    }    //翻译mode参数到相应的包裹的文件描述符模式
    INT中将fileMode = 0;
    如果(mode.contains(W))
        中将fileMode | = ParcelFileDescriptor.MODE_WRITE_ONLY;
    如果(mode.contains(R))
        中将fileMode | = ParcelFileDescriptor.MODE_READ_ONLY;
    如果(mode.contains(+))
        中将fileMode | = ParcelFileDescriptor.MODE_APPEND;    返回ParcelFileDescriptor.open(文件中将fileMode);
}私有类MySQLiteOpenHelper扩展SQLiteOpenHelper {//以前是静态的    公共静态最后弦乐DATABASE_TABLE =hv_kontakte;
    私有静态最后弦乐DATABASE_CREATE =
            CREATE TABLE+ DATABASE_TABLE +(+ KEY_ID +INTEGER PRIMARY KEY AUTOINCREMENT,+
                    为key_type +TEXT+ KEY_CLTYP +TEXT+ KEY_MDT +INTEGER,+ KEY_OBJ +INTEGER
                    + KEY_VTR +INTEGER,+ KEY_FKZ +INTEGER,+ KEY_NAME +TEXT+ KEY_VNAME +TEXT
                    + KEY_TEL +TEXT+ KEY_FAX +TEXT+ KEY_MOBIL +TEXT+ KEY_EMAIL +TEXT);    公共MySQLiteOpenHelper(上下文的背景下,字符串名称,SQLiteDatabase.CursorFactory工厂,诠释的版本){
        超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
    }    @覆盖
    公共无效的onCreate(SQLiteDatabase数据库){
        database.execSQL(DATABASE_CREATE);
        hvkContentProvider.this.insertSomeContacts();
    }    @覆盖
    公共无效onUpgrade(SQLiteDatabase数据库,诠释oldVersion,诠释静态网页){
        database.execSQL(DROP TABLE IF EXISTS+ DATABASE_TABLE);
        的onCreate(数据库);
    }
}

}

HdwFragment.java

 公共类HdwFragment扩展片段{私人SimpleCursorAdapter hdwDataAdapter;
私人的ListView列表视图;
公共静态最后弦乐ARG_SECTION_NUMBER =SECTION_NUMBER;
私有静态最后弦乐TAG =HdwFragment;
公共HdwFragment(){}@覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){    上下文的背景下= getActivity();
    查看rootView = inflater.inflate(R.layout.fragment_all,集装箱,FALSE);
    TextView的dummyTextView =(TextView中)rootView.findViewById(R.id.section_label);
    dummyTextView.setText(Dienstleister);
    //android.support.v4.app.LoaderManager loaderManager = getLoaderManager();    Log.i(TAGgetContentResolver之前);
    ContentResolver的CR = context.getContentResolver();
    Log.i(TAGresult_columns之前);
    的String [] = result_columns新的String [] {
            hvkContentProvider.KEY_ID,
            hvkContentProvider.KEY_TYPE,
            hvkContentProvider.KEY_CLTYP,
            hvkContentProvider.KEY_NAME,
            hvkContentProvider.KEY_VNAME
    };
    Log.i(TAG,其中,whereArgs和秩序之前);
    字符串,其中= NULL;
    字符串whereArgs [] = NULL;
    为了字符串= NULL;
    Log.i(TAGresultCursor行动之前);
    Log.i(TAG,hvkContentProvider URI:+ hvkContentProvider.CONTENT_URI);
    光标resultCursor = cr.query(hvkContentProvider.CONTENT_URI,result_columns,其中,whereArgs,顺序);
    Log.i(TAGresultCursor =+ resultCursor);
    Log.i(TAGfromColumns之前);
    的String [] = fromColumns新的String [] {
            hvkContentProvider.KEY_TYPE,
            hvkContentProvider.KEY_CLTYP,
            hvkContentProvider.KEY_NAME,
            hvkContentProvider.KEY_VNAME
    };
    Log.i(TAGtoViews之前);
    INT [] = toViews新INT [] {
        R.id.contactType,
        R.id.contactCltype,
        R.id.contactName,
        R.id.contactVname
    };
    Log.i(TAG,适配器之前);
    hdwDataAdapter =新SimpleCursorAdapter(getActivity(),R.layout.object_list_item,resultCursor,fromColumns,toViews,0);
    列表视图=(ListView控件)rootView.findViewById(R.id.list_all);
    listview.setAdapter(hdwDataAdapter);
    Log.i(TAG,回路布局之前);
    返回(的LinearLayout)rootView;
}@覆盖
公共无效onActivityCreated(捆绑savedInstanceState){
    super.onActivityCreated(savedInstanceState);    //捆绑ARGS = NULL;
    //loaderManager.initLoader(LOADER_ID,ARGS,loaderCallback);
}

}

的方法:insertSomeFunctions()我已经离开了,因为它不会在这里做一个区别,要去把赏金这个尽快。真的需要这个工作。


解决方案

 <供应商的android:当局=de.somename.provider
    机器人:启用=真
    机器人:多进程=真
    机器人:名字=。hvkContentProvider
    机器人:出口=真正的>< /提供商GT;

&LT从参考页;提供商GT;

In your case, android:authorities should have the value: de.somename.provider.hvkContentProvider.


So, if you are defining package in the manifest tag of AndroidManifest.xml, make sure hvkContentProvider is in that package. Else, change android:name=".hvkContentProvider" to android:name="de.somename.hvk3.hvkContentProvider" or your.package.name.hvkContentProvider

这篇关于无法找到供应商信息为<定制的提供商GT;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 08:56