这里是具体错误。 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;
}
}
登录信息:
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)