[NoSuchMethodError稳定性测试android应用时

问题描述 投票:0回答:1

这里是具体错误。 java.lang.NoSuchMethodError:类Landroid / database / Cursor中没有接口方法getCount();或其超级类(在/system/framework/framework.jar中显示“ android.database.Cursor”的声明),APP重新启动后,将onCreate()调用Cursor getCount(),为什么会发生此错误,需要使用新方法?来自android图书馆还是java liabray?

import android.database.Cursor;
import android.database.MatrixCursor;
import android.database.sqlite.SQLiteDatabase;


    public boolean onCreate() {
        DataStore.getInstance(getContext());
        setDBHandle(DataStore.getInstance(getContext()).getWritableDatabase()); //added
        setReadDBHandle(DataStore.getInstance(getContext()).getReadableDatabase()); //added

        if (Process.myUid() < 2000) {
            File dbFile2 = new File(PATH_DATABASE_DIRECTORY, IRecordingsContract.Recordings);
            int rwMode = FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IRGRP | FileUtils.S_IWGRP | FileUtils.S_IROTH | FileUtils.S_IWOTH;

            if (dbFile2.exists()) {
                FileUtils.setPermissions(dbFile2.getAbsolutePath(), rwMode, -1, -1);
                Log.d(TAG, "setPermissions 666 to RECORDINGS_DATABASE_NAME");
            }

            dbFile2 = new File(PATH_DATABASE_DIRECTORY, IRecordingsContract.Recordings + "-journal");
            if (dbFile2.exists()) {
                FileUtils.setPermissions(dbFile2.getAbsolutePath(), rwMode, -1, -1);
                Log.d(TAG, "setPermissions 666 to RECORDINGS_DATABASE_NAME-journal");
            }

            dbFile2 = new File(PATH_DATABASE_DIRECTORY, IRecordingsContract.Recordings + "-shm");
            if (dbFile2.exists()) {
                FileUtils.setPermissions(dbFile2.getAbsolutePath(), rwMode, -1, -1);
                Log.d(TAG, "setPermissions 666 to RECORDINGS_DATABASE_NAME-shm");
            }

            dbFile2 = new File(PATH_DATABASE_DIRECTORY, IRecordingsContract.Recordings + "-wal");
            if (dbFile2.exists()) {
                FileUtils.setPermissions(dbFile2.getAbsolutePath(), rwMode, -1, -1);
                Log.d(TAG, "setPermissions 666 to RECORDINGS_DATABASE_NAME-wal");
            }
        }

        Uri uriInstance = Uri.parse("content://" + IRecordingsContract.AUTHORITY + "/" + IRecordingsContract.Recordings + "/" + IRecordingsContract.RECORDINGS_TABLE);
        **Cursor currentVersionCursor = null;**

        try {
            currentVersionCursor = getMaxVersionRecord(uriInstance);

            if (currentVersionCursor != null && currentVersionCursor.moveToFirst()
                && **currentVersionCursor.getCount() >= 1**
                && currentVersionCursor.getColumnCount() >= 1) {
                setCurrentVersion(currentVersionCursor.getInt(0));
                Log.d(TAG, "The CurrentVersion Read from the DB Recording: " + currentVersion);
            }
        } catch (Exception e) {
            Log.d(TAG, "Exception in onCreate():getMaxVersionRecord()");
        } finally {
            if (currentVersionCursor != null) {
                currentVersionCursor.close();
                currentVersionCursor = null;
            }
        }
java android cursor television
1个回答
0
投票

登录信息:

ava.lang.NoSuchMethodError:类Landroid / database / Cursor中没有接口方法getCount();或其上级类(“ android.database.Cursor”的声明出现在/system/framework/framework.jar中)

在org.droidtv.playtv.provider.recordremind.RecordRemindProvider.onCreate(未知来源:188)

在android.content.ContentProvider.attachInfo(ContentProvider.java:1920)

在android.content.ContentProvider.attachInfo(ContentProvider.java:1895)

在android.app.ActivityThread.installProvider(ActivityThread.java:6440)

在android.app.ActivityThread.installContentProviders(ActivityThread.java:5987)

在android.app.ActivityThread.handleBindApplication(ActivityThread.java:5902)

在android.app.ActivityThread.access $ 1100(ActivityThread.java:200)

在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1656)

在android.os.Handler.dispatchMessage(Handler.java:106)

在android.os.Looper.loop(Looper.java:193)

在android.app.ActivityThread.main(ActivityThread.java:6718)

在java.lang.reflect.Method.invoke(本机方法)

在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:548)

在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

© www.soinside.com 2019 - 2024. All rights reserved.