我有一种情况,当我发出一些cursor.moveToNext()请求时我的程序崩溃了.错误消息显示:
android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. # Open Cursors=773 (# cursors opened by this proc=773)
at android.database.CursorWindow.<init>(CursorWindow.java:112)
at android.database.CursorWindow.<init>(CursorWindow.java:100)
at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)
at android.database.sqlite.SQLiteCursor.clearOrCreateWindow(SQLiteCursor.java:364)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:162)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:156)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:161)
at android.database.AbstractCursor.moveToNext(AbstractCursor.java:209)
at net.cunniman.teacherplannerlite.SchoolClassDataSource.getClassForDayView(SchoolClassDataSource.java:173)
at net.cunniman.teacherplannerlite.DayView.getSchoolClasses(DayView.java:200)
at net.cunniman.teacherplannerlite.DayView.displayDate(DayView.java:176)
at net.cunniman.teacherplannerlite.DayView.plusDay(DayView.java:287)
at net.cunniman.teacherplannerlite.DayView.onClick(DayView.java:93)
at android.view.View.performClick(View.java:3565)
at android.view.View$PerformClick.run(View.java:14165)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4514)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
at dalvik.system.NativeStart.main(Native Method)
try {
this.openForRead();
for (int day_counter = 0; day_counter < DAY_PERIOD.length/2; day_counter++) …Run Code Online (Sandbox Code Playgroud) 我无法访问内部对象的成员。
class Foo {
val obj = object {
val field = 42
}
}
fun foo() {
Foo().obj.field // unresolved reference field
}
Run Code Online (Sandbox Code Playgroud) 我有一个SDK,已经为此开发了许多小型测试应用程序。这些都是具有以下共同点的独立android应用程序:
1)所有依赖项都相同(即,我的sdk / android sdk / etc。的相同版本。)
2)它们都共享一个公共的顶级build.gradle文件(当前为空):
3)它们正在构建,测试等。各个阶段都是相同的。
我希望所有项目都作为模块存在于Android Studio中,并且希望它们在顶层build.gradle中共享尽可能多的配置,以便我可以更新一个文件并使所有文件正常工作。
当我在顶层build.gradle中添加以下内容时:
subprojects {
apply plugin: "android"
repositories {
mavenCentral()
maven {
url "my.repo.com"
credentials {
username "user"
password "pass"
}
}
dependencies {
compile 'com.my.library:my-library:0.0.1'
// compile 'com.google.android.gms:play-services:+'
}
}
}
Run Code Online (Sandbox Code Playgroud)
我懂了
'could not find property 'plugin' on ':App1'':App1'settings.gradle中的第一个应用程序在哪里,构建失败。
我的目标是在此顶级文件中获取上面的块以及其他许多适用的元素。
编辑:我已经修复了语法错误(我缺少:),但是这导致了“找不到ID为'android'的插件。通常可以通过添加以下内容来解决:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.14.4'
}
}
allprojects {
repositories {
mavenCentral()
}
}
Run Code Online (Sandbox Code Playgroud)
但这并不能解决这种情况。
编辑2:
最终形式:
buildscript {
repositories { …Run Code Online (Sandbox Code Playgroud)