1

私のアプリは、以前のどの Android バージョンでも問題なく動作します4.3。つまり、(EditText フィールド) に単語を入力するとedWord、同じスペルの単語のリストがリスト ビューに表示されます。

しかし、では、 app_ContentProvider がサポートされている を見つけられないと主張して、Android 4.3常に を返します。nulluri

次のコードを使用して単語リストを表示します。

public void showWordlist() {    

    edWord.setEnabled(true);
    String word = edWord.getText().toString();      
    Uri uri = Uri.parse("content://doyle.app_name.app_ContentProvider/dict/" + mDBFile.fileName + "/list/" + word);
    edWord.requestFocus();

    try
    {
        Cursor result = getContentResolver().query(uri,null,null,null,null);    
        Log.i(MAIN_TAG, "Found word = " + result); 
        //I think the problem lies somewhere here because 
        //the 'result' is always 'null' (see the above log.i)

        if (result != null)
        {
            int countRow=result.getCount();
            Log.i(MAIN_TAG, "countRow = " + countRow);
            mLSTCurrentWord.clear();
            //mLSTCurrentContent.clear();
            mLSTCurrentWordId.clear();
            mAdapter.clear();
            if (countRow >= 1)
            {
                int indexWordColumn = result.getColumnIndex("word");
                int indexIdColumn = result.getColumnIndex("id");                
                result.moveToFirst();
                String strWord;
                int intId;
                int i = 0;
                do
                {                       
                    strWord = Utility.decodeContent(result.getString(indexWordColumn));
                    intId = result.getInt(indexIdColumn);                       
                    mLSTCurrentWord.add(i,strWord);
                    mLSTCurrentWordId.add(i,intId);
                    //mLSTCurrentContent.add(i,strContent);
                    mAdapter.add(strWord);
                    i++;
                } while (result.moveToNext()); 
            }

            result.close();
        }

        lstWord.setAdapter(mAdapter);
    }
    catch (Exception ex)
    {
        Log.e(MAIN_TAG, "Error = " + ex.toString());  
    }
    edWord.setEnabled(true);        
}

そして、ここに私のapp_ContentProviderがあります。

Android 4.3アプリが正常に機能しなくなるような変更があるかどうかはわかりません。

上記のコード行について、何が問題なのか教えていただけますか? どうもありがとう。

4

1 に答える 1

0

マニフェストでコンテンツ プロバイダのプロパティ android:exported="true" を設定してみてください。Android 4.3でこのプロパティのデフォルト値が変わったようです

于 2014-04-15T19:21:19.237 に答える