2017-09-26 47 views
0

我有一個應用程序,我用Sugar ORM構建,現在有一個應用程序更新,我需要更新架構。我遵循了Sugar ORM提供的有關數據庫遷移的文檔,而且大多數時候它似乎都工作正常。但是,有時看起來升級運行不止一次會導致崩潰。Android - 糖ORM數據庫遷移運行多次

根據文檔,我需要創建一個根據我的模式版本命名的SQL腳本,然後將其放入/assets/sugar-upgrades文件夾中。這已經完成,這是我的簡單腳本。

ALTER TABLE SETTINGS ADD VBTTN_ADDRESS TEXT; 

正如你所看到的,我只是在SETTINGS表中添加一列。在完成這一步之後,文檔會說在AndroidManifest.xml file中設置新版本模式。這也已完成。

從那裏更新過程應該運行腳本再次運行現有的數據庫,並且它正確地執行。但是,有時它似乎會再次運行腳本,導致以下崩潰。

# Crashlytics - plaintext stacktrace downloaded by Paul Vinten at Fri, 22 Sep 2017 15:23:19 GMT 
# URL: https://fabric.io/sl-labs/android/apps/com.myapp/issues/59bac986be077a4dcca10ad0?time=last-twenty-four-hours/sessions/59C512E5019C0001364FFFF2717BBDAC_a227484f9f9b11e7b44b56847afe9799_0_v2 
# Organization: SL Labs 
# Platform: android 
# Application: Checkon.me 
# Version: 1.4 (18) 
# Bundle Identifier: com.myapp 
# Issue #: 21 
# Issue ID: 59bac986be077a4dcca10ad0 
# Session ID: 59C512E5019C0001364FFFF2717BBDAC_a227484f9f9b11e7b44b56847afe9799_0_v2 
# Date: 2017-09-22T13:40:44Z 
# OS Version: 7.0 
# Device: Galaxy S6 
# RAM Free: 37.8% 
# Disk Free: 85.4% 

#0. Crashed: main: 0 0 0x0000000000000000 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988) 
     at android.app.ActivityThread.-wrap14(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6682) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

-- 

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.activities.MainActivity}: android.database.sqlite.SQLiteException: duplicate column name: VBTTN_ADDRESS (code 1): , while compiling: alter table SETTINGS add VBTTN_ADDRESS TEXT; 
################################################################# 
Error Code : 1 (SQLITE_ERROR) 
Caused By : SQL(query) error or missing database. 
    (duplicate column name: VBTTN_ADDRESS (code 1): , while compiling: alter table SETTINGS add VBTTN_ADDRESS TEXT;) 
################################################################# 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988) 
     at android.app.ActivityThread.-wrap14(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6682) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 
Caused by android.database.sqlite.SQLiteException: duplicate column name: VBTTN_ADDRESS (code 1): , while compiling: alter table SETTINGS add VBTTN_ADDRESS TEXT; 
################################################################# 
Error Code : 1 (SQLITE_ERROR) 
Caused By : SQL(query) error or missing database. 
    (duplicate column name: VBTTN_ADDRESS (code 1): , while compiling: alter table SETTINGS add VBTTN_ADDRESS TEXT;) 
################################################################# 
     at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java) 
     at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1005) 
     at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:570) 
     at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 
     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59) 
     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31) 
     at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:2055) 
     at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1986) 
     at com.orm.SchemaGenerator.executeScript(SchemaGenerator.java:97) 
     at com.orm.SchemaGenerator.executeSugarUpgrade(SchemaGenerator.java:75) 
     at com.orm.SchemaGenerator.doUpgrade(SchemaGenerator.java:52) 
     at com.orm.SugarDb.onUpgrade(SugarDb.java:31) 
     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:256) 
     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163) 
     at com.orm.SugarDb.getDB(SugarDb.java:36) 
     at com.orm.SugarRecord.find(SugarRecord.java:189) 
     at com.orm.SugarRecord.listAll(SugarRecord.java:94) 
     at com.myapp.model.Settings.getSettings(Settings.java:71) 
     at com.myapp.activities.MainActivity.onCreate(MainActivity.java:18) 
     at android.app.Activity.performCreate(Activity.java:6942) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2880) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988) 
     at android.app.ActivityThread.-wrap14(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6682) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

#0. Crashed: main: 0 0 0x0000000000000000 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988) 
     at android.app.ActivityThread.-wrap14(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6682) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

#1. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#2. HeapTaskDaemon 
     at dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java) 
     at java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:433) 
     at java.lang.Thread.run(Thread.java:762) 

#3. OkHttp ConnectionPool 
     at java.lang.Object.wait(Object.java) 
     at com.android.okhttp.ConnectionPool.performCleanup(ConnectionPool.java:319) 
     at com.android.okhttp.ConnectionPool.runCleanupUntilPoolIsEmpty(ConnectionPool.java:256) 
     at com.android.okhttp.ConnectionPool.-wrap0(ConnectionPool.java) 
     at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:102) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#4. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#5. Crashlytics Report Uploader 
     at java.lang.Thread.sleep(Thread.java) 
     at java.lang.Thread.sleep(Thread.java:371) 
     at java.lang.Thread.sleep(Thread.java:313) 
     at com.crashlytics.android.core.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:188) 
     at com.crashlytics.android.core.ReportUploader$Worker.onRun(ReportUploader.java:173) 
     at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30) 
     at java.lang.Thread.run(Thread.java:762) 

#6. ReferenceQueueDaemon 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:150) 
     at java.lang.Thread.run(Thread.java:762) 

#7. Answers Events Handler1 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1103) 
     at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1084) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75) 
     at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30) 
     at java.lang.Thread.run(Thread.java:762) 

#8. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#9. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#10. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#11. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#12. Thread-11 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2077) 
     at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438) 
     at com.google.android.gms.common.zza.zza(Unknown Source) 
     at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(Unknown Source) 
     at com.google.android.gms.ads.identifier.AdvertisingIdClient.zzd(Unknown Source) 
     at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getInfo(AdvertisingInfoReflectionStrategy.java:106) 
     at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getAdvertisingId(AdvertisingInfoReflectionStrategy.java:76) 
     at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getAdvertisingInfo(AdvertisingInfoReflectionStrategy.java:66) 
     at io.fabric.sdk.android.services.common.AdvertisingInfoProvider.getAdvertisingInfoFromStrategies(AdvertisingInfoProvider.java:118) 
     at io.fabric.sdk.android.services.common.AdvertisingInfoProvider.access$000(AdvertisingInfoProvider.java:28) 
     at io.fabric.sdk.android.services.common.AdvertisingInfoProvider$1.onRun(AdvertisingInfoProvider.java:70) 
     at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30) 
     at java.lang.Thread.run(Thread.java:762) 

#13. FinalizerWatchdogDaemon 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded(Daemons.java:269) 
     at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:249) 
     at java.lang.Thread.run(Thread.java:762) 

#14. FinalizerDaemon 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Object.wait(Object.java:407) 
     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188) 
     at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209) 
     at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:204) 
     at java.lang.Thread.run(Thread.java:762) 

#15. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#16. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

#17. Crashlytics Exception Handler1 
     at dalvik.system.VMStack.getThreadStackTrace(VMStack.java) 
     at java.lang.Thread.getStackTrace(Thread.java:1567) 
     at java.lang.Thread.getAllStackTraces(Thread.java:1617) 
     at com.crashlytics.android.core.CrashlyticsController.writeSessionEvent(CrashlyticsController.java:1114) 
     at com.crashlytics.android.core.CrashlyticsController.writeFatal(CrashlyticsController.java:852) 
     at com.crashlytics.android.core.CrashlyticsController.access$400(CrashlyticsController.java:59) 
     at com.crashlytics.android.core.CrashlyticsController$6.call(CrashlyticsController.java:292) 
     at com.crashlytics.android.core.CrashlyticsController$6.call(CrashlyticsController.java:285) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75) 
     at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30) 
     at java.lang.Thread.run(Thread.java:762) 

#18. Queue 
     at java.lang.Object.wait(Object.java) 
     at java.lang.Thread.parkFor$(Thread.java:2128) 
     at sun.misc.Unsafe.park(Unsafe.java:325) 
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161) 
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035) 
     at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:519) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65) 
     at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46) 
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
     at java.lang.Thread.run(Thread.java:762) 

有沒有人有這個問題?有沒有人想出瞭如何解決這個問題?

**編輯** 此問題發生在發佈版本上,而不是在開發過程中。它也是間歇性的。這不是我能夠複製的東西。只有我的測試人員複製了它,並且除了在舊版本上安裝新版本的應用程序之外,他們找不到其他模式。有時會發生問題,但大部分時間不會。

回答

0

增量構建應該有問題。嘗試一下乾淨的版本。

確保您禁用即時運行爲糖ORM

而且Crashlytics提高構建-ID與時間戳同步。 您可以嘗試通過將其添加到您的gradle文件來禁用它來開發env。

android { 
    ... 
    buildTypes { 
     debug { 
     ext.enableCrashlytics = false 
    } 
} 

好運

埃姆雷

+0

我很欣賞的評論,但實際上有一兩件事我想我沒有明確的是,這不是在調試程序時出現的問題。它發生在應用程序的發佈版本上。 –

+0

嗨,即時通訊也有這個問題,你能解決它嗎? – David