質問編集履歴

2

修正

2021/02/16 01:13

投稿

abc1222
abc1222

スコア24

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  エミュレーター・実機ともに、デバッグではクラッシュしない
30
30
 
31
- リリースビルドでも、エミュレーター・実機ともにクラッシュしない
31
+ ~~リリースビルドでも、エミュレーター・実機ともにクラッシュしない
32
32
 
33
33
  Google Playからダウンロードしたもののみクラッシュする
34
34
 
@@ -37,6 +37,10 @@
37
37
 
38
38
 
39
39
  恥ずかしながら今回のエラーをきっかけにリリースビルドを知りました。リリースする際にリリースビルドに切り替えているという認識(下記の作業)ですが、間違っていたらリリースビルドでの使用状況は把握できていません。
40
+
41
+ ~~
42
+
43
+ リリースビルド設定が上手くできていませんでした。設定を見直したところ、リリースビルドでもクラッシュを確認しました。
40
44
 
41
45
 
42
46
 

1

追記しました

2021/02/16 01:13

投稿

abc1222
abc1222

スコア24

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,14 @@
1
+ デバッグではクラッシュすることが無かったため、リリースしました。
2
+
1
- デバッグでは出ないのですがリリたアプリではIndexOutOfBoundsExceptionのエラーが出てクラッシュします。
3
+ しかしGoogle Playからダウンロてみると、特定のfragmentに移動した時点でクラッシュします。
2
4
 
3
5
 
4
6
 
7
+ リリースしたアプリのエラーを見る方法が分からなかったので、とりあえずandroidstudioを開いてダウンロードした実機のログを見てみると、IndexOutOfBoundsExceptionのエラーが出てクラッシュしていました。
8
+
9
+
10
+
5
- ログを見と、下記の場所エラーが出ています。
11
+ IndexOutOfBoundsExceptionが出ていのは下記です。
6
12
 
7
13
  import (パッケージ名).*
8
14
 
@@ -10,8 +16,178 @@
10
16
 
11
17
 
12
18
 
13
- 上記のインポートは他のFragmentでも使っているのですが、特定のFragmentでのみーが出ており、原因が分かりません。
19
+ 上記のインポートは他のFragmentでも使っているのですが、特定のFragmentでのみッシュしており、原因が分かりません。
14
20
 
15
21
 
16
22
 
17
23
  ふわっとした質問で申し訳ないのですが、なぜIndexOutOfBoundsExceptionがインポートで出るのか全く分かっておらず、必要な情報も分からないので、何か手掛かりとなる情報を頂けますと幸いです。
24
+
25
+
26
+
27
+ ### 状況
28
+
29
+ エミュレーター・実機ともに、デバッグではクラッシュしない
30
+
31
+ リリースビルドでも、エミュレーター・実機ともにクラッシュしない
32
+
33
+ Google Playからダウンロードしたもののみクラッシュする
34
+
35
+
36
+
37
+
38
+
39
+ 恥ずかしながら今回のエラーをきっかけにリリースビルドを知りました。リリースする際にリリースビルドに切り替えているという認識(下記の作業)ですが、間違っていたらリリースビルドでの使用状況は把握できていません。
40
+
41
+
42
+
43
+ ```ここに言語を入力
44
+
45
+ buildTypes {
46
+
47
+ release {
48
+
49
+ minifyEnabled true
50
+
51
+ shrinkResources true
52
+
53
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
54
+
55
+ }
56
+
57
+ }
58
+
59
+ ```
60
+
61
+
62
+
63
+ ### コード
64
+
65
+ 何処まで記載すれば良いのか分からないので、一旦エラーが出ているインポートを使用している所(インポートを消したらエラーが出る所)の前後のみ記載させていただきます。(コメントで使用している箇所に目印を付けています)
66
+
67
+ 必要であればコメントいただければ追加します。
68
+
69
+
70
+
71
+ ```ここに言語を入力
72
+
73
+
74
+
75
+ import (パッケージ名).*
76
+
77
+ //省略
78
+
79
+
80
+
81
+ class ○○Fragment : Fragment() {
82
+
83
+
84
+
85
+ private val ▲▲ViewModel: ▲▲ViewModel by activityViewModels() //2つ目の▲▲ViewModelで使用(赤文字に)
86
+
87
+
88
+
89
+ override fun onCreateView(
90
+
91
+ inflater: LayoutInflater,
92
+
93
+ container: ViewGroup?,
94
+
95
+ savedInstanceState: Bundle?
96
+
97
+ ): View {
98
+
99
+ super.onCreateView(inflater, container, savedInstanceState)
100
+
101
+
102
+
103
+    ▲▲ViewModel.▲▲.observe(viewLifecycleOwner, { ▲▲ ->
104
+
105
+ if (▲▲ != null) {
106
+
107
+ val storageRef = FirebaseStorage.getInstance().reference
108
+
109
+ val imageRef = storageRef.child("パス")
110
+
111
+ GlideApp.with(this) //GlideAppで使用(赤文字に)
112
+
113
+ .load(imageRef)
114
+
115
+ .signature(ObjectKey(▲▲.update))
116
+
117
+ .into(▲▲Image)
118
+
119
+ }
120
+
121
+ })
122
+
123
+
124
+
125
+ binding = DataBindingUtil.inflate(inflater, R.layout.fragment_▲▲, container, false) //Rで使用(赤文字に)
126
+
127
+ binding.▲▲ViewModel = ▲▲ViewModel
128
+
129
+ binding.lifecycleOwner = this
130
+
131
+
132
+
133
+ return binding.root
134
+
135
+ }
136
+
137
+
138
+
139
+ // 省略
140
+
141
+
142
+
143
+   private fun □□(□□: Map<String, □□>) {
144
+
145
+ val cl = □□Layout as ViewGroup
146
+
147
+ cl.removeAllViews()
148
+
149
+
150
+
151
+ if (□□.isNullOrEmpty()){
152
+
153
+ // 省略
154
+
155
+ }else{
156
+
157
+ for ((key, value) in □□) {
158
+
159
+
160
+
161
+       val childNum = cl.childCount
162
+
163
+ val □□Num = □□.size
164
+
165
+
166
+
167
+ if (childNum < □□Num){
168
+
169
+ layoutInflater.inflate(R.layout.□□, cl) //Rで使用(赤文字に)
170
+
171
+ }
172
+
173
+
174
+
175
+ val storageRef = FirebaseStorage.getInstance().reference
176
+
177
+ val imageRef = storageRef.child("パス")
178
+
179
+ GlideApp.with(this) //GlideAppで使用(赤文字に)
180
+
181
+ .load(imageRef)
182
+
183
+ .signature(ObjectKey(value.update))
184
+
185
+ .into(□□Image)
186
+
187
+ }
188
+
189
+ }
190
+
191
+ }
192
+
193
+ ```