おはようございます。
アプリが Google Play ストアに公開され、そこからインストールされると、アプリがクラッシュします。Android Studio からアプリをインストールすると、まったくクラッシュしません。
RushORM で作成したローカル データベースから情報を取得するレイアウトを開こうとすると、アプリがクラッシュするようです。
GP コンソールで報告される ANR は次のとおりです。
ANR 入力のディスパッチがタイムアウトしました (タッチされたウィンドウが 500.0 ミリ秒以上前に配信された特定の入力イベントの処理を完了していないため、非キー イベントの送信を待機しています。待機キューの長さ: 35。待機キューのヘッド時間: 5507.1 ミリ秒。)
そして、これはクラッシュがGPコンソールで報告するものです:
a.a.a.b.b.c: This is most likely caused by a change in data structure or new RushObject.
This issue should be resolved by a database migration.
This can be done by updating db version number in the manifest or setting Rush in debug mode.
To set Rush in debug mode add this to your manifest file - <meta-data android:name="Rush_debug" android:value="true" />
at a.a.a.a.j.b(Unknown Source)
at a.a.a.b.n.a(Unknown Source)
at a.a.a.b.n.a(Unknown Source)
at a.a.a.b.al.b(Unknown Source)
at com.avena.avenafit.dashboard.g.L(Unknown Source)
at com.avena.avenafit.dashboard.g.a(Unknown Source)
at com.avena.avenafit.dashboard.ad.a(Unknown Source)
at b.a.a.a.c.a(Unknown Source)
at com.avena.avenafit.dashboard.ad.a(Unknown Source)
at android.support.v4.app.af.a(Unknown Source)
at android.support.v4.app.af.a(Unknown Source)
at android.support.v4.app.j.run(Unknown Source)
at android.support.v4.app.af.e(Unknown Source)
at android.support.v4.app.af.b(Unknown Source)
at android.support.v4.app.ap.b(Unknown Source)
at android.support.v4.view.ViewPager.a(Unknown Source)
at android.support.v4.view.ViewPager.c(Unknown Source)
at android.support.v4.view.ViewPager.onMeasure(Unknown Source)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.support.design.widget.CoordinatorLayout.a(Unknown Source)
at android.support.design.widget.CoordinatorLayout.onMeasure(Unknown Source)
at android.view.View.measure(View.java:18794)
at android.support.v4.widget.DrawerLayout.onMeasure(Unknown Source)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.widget.ContentFrameLayout.onMeasure(Unknown Source)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
at android.view.View.measure(View.java:18794)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
マニフェスト ファイルで、DB のバージョンを次のように変更しようとしました。
<!-- Updating this will cause a database upgrade -->
<meta-data
android:name="Rush_db_version"
android:value="2" />
GPStore からアプリをインストールし、Android Studio を開いていると、奇妙なエラーが多数登録されています。それらすべての中で、これは私の注意を引きます:
07-11 11:17:08.037 17067-17067/com.avena.avenafit E/SQLiteLog: (1) no such column: type_of_check
type_of_check は、私の db 構造の 1 つのフィールド (前述のように、RushORM で作成) の場合です。参考までに、私のクラスは次のとおりです。
package com.avena.avenafit.dbb;
import co.uk.rushorm.core.RushObject;
public class UserCheck extends RushObject {
private String type_of_check;
private String check_date;
private String hour_checked;
/* Classes must include an empty constructor */
public UserCheck() {}
public String getType_of_check() {
return type_of_check;
}
public void setType_of_check(String type_of_check) {
this.type_of_check = type_of_check;
}
public String getCheck_date() {
return check_date;
}
public void setCheck_date(String check_date) {
this.check_date = check_date;
}
public String getHour_checked() {
return hour_checked;
}
public void setHour_checked(String hour_checked) {
this.hour_checked = hour_checked;
}
}
type_of_check を設定した例を次に示します。
breakfast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String time =
new SimpleDateFormat("HH:mm", Locale.getDefault()).format(date);
sendCheck("check_breakfast");
breakfast.setColorFilter(color_green);
UserCheck check1 = new UserCheck();
check1.setType_of_check("1");
check1.setCheck_date(currentDate);
check1.setHour_checked(time.toString());
check1.save();
} catch (JSONException e) {
e.printStackTrace();
}
}
});
ここで私が見逃しているものを見ている人はいますか?