Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅从playstore更新后Android应用程序崩溃_Android_Sqlite_Proguard_Android Contentprovider_Android Proguard - Fatal编程技术网

仅从playstore更新后Android应用程序崩溃

仅从playstore更新后Android应用程序崩溃,android,sqlite,proguard,android-contentprovider,android-proguard,Android,Sqlite,Proguard,Android Contentprovider,Android Proguard,我最近更新了1.2版,因为我使用内置数据库来显示数据。我第一次从资产中复制了数据库,并使用ContentProvider访问数据库中的数据 它在第一次安装时工作正常,但如果任何用户从playstore更新应用程序,就会出现错误 用户报告的错误日志: 报告1: proguard-rules.pro: -保留公共类android.support.v7.widget.*{*;} -保留公共类android.support.v7.internal.widget.*{*;} -保留公共类android.s

我最近更新了1.2版,因为我使用内置数据库来显示数据。我第一次从资产中复制了数据库,并使用ContentProvider访问数据库中的数据

它在第一次安装时工作正常,但如果任何用户从playstore更新应用程序,就会出现错误

用户报告的错误日志

报告1: proguard-rules.pro:
-保留公共类android.support.v7.widget.*{*;}
-保留公共类android.support.v7.internal.widget.*{*;}
-保留公共类android.support.v7.internal.view.menu.*{*;}
-keep public class*扩展了android.support.v4.view.ActionProvider{
public(android.content.Context);
}
-keep public class*扩展了android.support.v7.widget.RecyclerView$LayoutManager{
公众(……);
}
-保持类android.support.v7.widget.RoundRectDrawable{*;}
#支架设计
-dontwarn android.support.design**
-keep class android.support.design.*{*;}
-保留android.support.design接口。**{*;}
-保留公共类android.support.design.R$*{*;}
-keep class uk.co.chrisjenx.phraphic.*{*;}
-keep class uk.co.chrisjenx.书法。*$*{*;}
-保持类com.firebase.*{*;}
-保持类org.apache.*{*;}
-keepnames类com.fasterxml.jackson.*{*;}
-keepnames类javax.servlet.*{*;}
-keepnames类org.ietf.jgss.*{*;}
-dontwarn org.w3c.dom**
-dontwarn org.joda.time**
-dontwarn org.shade.apache**
-dontwarn org.ietf.jgss**
#仅当您直接下载SDK jar而不是从maven下载时才需要。
-保持类com.shade.fasterxml.jackson.*{*;}
-唐特沃恩·奥基奥**
-dontwarn 2**
-保持类2.*{*;}
-保留署名
-保留特例
-保持类com.emergingcoders.model.*{*;}
-keepclassswithmembers类*{
@2.http.*;
}
我并没有在新的更新中更新数据库版本,我尝试了很多来寻找,但不知道为什么它只在更新应用程序后发生


有人能帮忙吗?提前感谢。

我认为您没有为数据库提供正确的更新脚本。如果应用程序是从头开始运行的(即没有现有数据库),这将正常工作(因为不需要数据库迁移)

研究SQLHelper类,它们提供了允许您迁移数据库版本的方法

需要说明的是,您需要更新的是数据库模式,而不是数据(模式中缺少一列,错误指出该列):


我认为您没有为数据库提供正确的更新脚本。如果应用程序是从头开始运行的(即没有现有数据库),这将正常工作(因为不需要数据库迁移)

研究SQLHelper类,它们提供了允许您迁移数据库版本的方法

需要说明的是,您需要更新的是数据库模式,而不是数据(模式中缺少一列,错误指出该列):


我不会在任何更新中更新数据库,因为它只是第一次复制。我不会在任何更新中更新数据库,因为它只是第一次复制。您是如何进行复制的?如果有什么不同,你是做错了。你是怎么复印的?如果有什么不同,你是做错了。
android.database.sqlite.SQLiteException: no such column: utp (code 1): , while compiling: UPDATE quotes SET liked=?,utp=? WHERE _id=1183
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
    at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1574)
    at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1522)
    at com.emergingcoders.database.QuoteContentProvider.update(Unknown Source)
    at android.content.ContentProvider$Transport.update(ContentProvider.java:355)
    at android.content.ContentResolver.update(ContentResolver.java:1360)
    at com.emergingcoders.a.c$a.onClick(Unknown Source)
    at android.view.View.performClick(View.java:5201)
    at android.view.View$PerformClick.run(View.java:21163)
    at android.os.Handler.handleCallback(Handler.java:746)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5443)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
java.lang.RuntimeException: An error occurred while executing doInBackground()
    at android.support.v4.content.o$3.done(Unknown Source)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:818)
Caused by: android.database.sqlite.SQLiteException: no such column: utp (code 1): , while compiling: SELECT * FROM quotes WHERE (liked=1) ORDER BY utp DESC
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
    at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
    at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:400)
    at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:294)
    at com.emergingcoders.database.QuoteContentProvider.query(Unknown Source)
    at android.content.ContentProvider.query(ContentProvider.java:1017)
    at android.content.ContentProvider$Transport.query(ContentProvider.java:238)
    at android.content.ContentResolver.query(ContentResolver.java:491)
    at android.support.v4.content.c.a(Unknown Source)
    at android.support.v4.content.b$c.a(Unknown Source)
    at android.support.v4.content.b.a(Unknown Source)
    at android.support.v4.content.k.h(Unknown Source)
    at android.support.v4.content.k.d(Unknown Source)
    at android.support.v4.content.a.e(Unknown Source)
    at android.support.v4.content.a$a.a(Unknown Source)
    at android.support.v4.content.a$a.a(Unknown Source)
    at android.support.v4.content.o$2.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    ... 3 more
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mrapps.statusandquotes/com.emergingcoders.activities.TodaysQuotesActivity}: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2426)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5443)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Caused by: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
    at android.database.CursorWindow.nativeGetString(Native Method)
    at android.database.CursorWindow.getString(CursorWindow.java:438)
    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
    at android.database.CursorWrapper.getString(CursorWrapper.java:137)
    at com.emergingcoders.activities.TodaysQuotesActivity.onCreate(Unknown Source)
    at android.app.Activity.performCreate(Activity.java:6245)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
    ... 9 more
-keep public class android.support.v7.widget.** { *; }
-keep public class android.support.v7.internal.widget.** { *; }
-keep public class android.support.v7.internal.view.menu.** { *; }

-keep public class * extends android.support.v4.view.ActionProvider {
    public <init>(android.content.Context);
}

-keep public class * extends android.support.v7.widget.RecyclerView$LayoutManager {
    public <init>(...);
}

-keep class android.support.v7.widget.RoundRectDrawable { *; }

# support design
-dontwarn android.support.design.**
-keep class android.support.design.** { *; }
-keep interface android.support.design.** { *; }
-keep public class android.support.design.R$* { *; }

-keep class uk.co.chrisjenx.calligraphy.* { *; }
-keep class uk.co.chrisjenx.calligraphy.*$* { *; }

-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.**
-dontwarn org.ietf.jgss.**

# Only necessary if you downloaded the SDK jar directly instead of from maven.
-keep class com.shaded.fasterxml.jackson.** { *; }

-dontwarn okio.**
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions

-keep class com.emergingcoders.model.** { *; }

-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}
no such column: utp