Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
致命傷を避けるための例外実例集
Search
Keishin Yokomaku
November 09, 2016
Technology
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
致命傷を避けるための例外実例集
Keishin Yokomaku
November 09, 2016
More Decks by Keishin Yokomaku
See All by Keishin Yokomaku
Base64 in Android
keithyokoma
0
54
One screen, many BottomSheets
keithyokoma
0
460
LazyColumnのitemがViewPortの中で占める領域の割合を知りたい
keithyokoma
0
750
Build apps for Cars
keithyokoma
0
590
Save the state
keithyokoma
0
630
Either in Kotlin
keithyokoma
0
650
持続的なアプリ開発のためのDXを支える技術
keithyokoma
2
5.6k
Make the objects serializable with kotlinx.serialization
keithyokoma
0
5.3k
Kotlin で書く Gradle Custom Tasks
keithyokoma
0
590
Other Decks in Technology
See All in Technology
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2.3k
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
290
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
180
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4k
AI Driven AI Governance
pict3
0
330
ゼロをイチにする仕事が終わったあと
smasato
0
330
Gen3R: 3D Scene Generation Meets Feed-Forward Reconstruction
spatial_ai_network
0
110
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
160
なぜ人は自分のプロジェクトを 「なんちゃってアジャイル」と 自嘲するのか
kozotaira
0
280
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
820
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
260
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.1k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
460
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Bash Introduction
62gerente
615
220k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
180
Documentation Writing (for coders)
carmenintech
77
5.4k
Designing for Timeless Needs
cassininazir
1
300
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
230
Transcript
க໋ইΛආ͚ΔͨΊͷ ྫ֎࣮ྫू Keishin Yokomaku / Startup Android #1
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू About Me ▸ Keishin Yokomaku ▸ Drivemode, Inc. /
Principal Engineer ▸ KeithYokoma: GitHub / Twitter / Qiita / Tumblr / Stack Overflow ▸ Books: Mobile App Dev Guide / Android Academia / Grimoire of Android ▸ Fun: Gymnastics / Cycling / Photography / Motorsport ▸ Today’s Quote: “࣌ے” 2
ྫ֎ 3
4
5 ˒ˑˑˑˑ This app keeps crashing. Uninstalled.
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू ইઙ͍͏ͪʹ࠹͙ ▸ ϦϦʔεઓུͱΫϥογϡݕͷΈඞਢςΫχοΫ ▸ Fabric(Crashlytics) ͰΫϥογϡϩάͷऩू ▸ Google Play
Developer Console Ͱஈ֊తϦϦʔε ▸ ϢʔβϑΟʔυόοΫͷมԽʹؾ͘ ▸ ʮ࠷ۙ͜ΜͳϑΟʔυόοΫ͕Α͘དྷͯΔʯ ▸ ʮ͋ͷϑΟʔυόοΫݮͬͨʯ 6
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू ෆཧͱઓ͏ ▸ ໌Β͔ʹΫϥογϡ͢Δͱ͔Δͷ͚͕ͩݪҼͰͳ͍ ▸ Ϣʔβͷ༻ঢ়گʹΑͬͯΫϥογϡͨ͠Γ͠ͳ͔ͬͨΓ͢Δͷ͋Δ ▸ ͷҧ͍ɺ͍ํͷҧ͍ɺଞʹΠϯετʔϧ͍ͯ͠ΔΞϓϦͷҧ͍ ▸ ༷ʑͳཁҼ͕༧֎ͷΫϥογϡΛ༠ൃ͢Δ
▸ ͱ͖ʹݟΒ͵ྫ֎͕ݪҼͰ͋Δ͜ͱ͋Δ ▸ ྫ֎ͷ໊લϝοηʔδ͔Βঢ়گཧ༝ΛಡΈऔΔεΩϧΛʹண͚Α͏ 7
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू Let’s get started! ▸ ຊͷྫ֎Ϩγϐ ▸ ༗໊Ͳ͜Ζ͔ΒͲϚΠφʔͳͷ·ͰϞϦϞϦίʔε 8 NullPointerException
OutOfMemoryError StackOverflowError Illegal**Exception CursorWindowAllocationException TransactionTooLargeException DeadObjectException
NullPointerException 9
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू NullPointerException ▸ Ұ൪Α͋͘ΔΫϥογϡͷݪҼ ▸ ى͖Δཧ༝༷ʑ ▸ ίʔυ্Ͱͷݕࠪ࿙Ε ▸ Nullable
Ͱͳ͍ॴʹ null Λೖ ▸ ΦϒδΣΫτͷϥΠϑαΠΫϧʹର͢Δߟྀ࿙Ε 10
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू NullPointerException ▸ ΉΈʹରࡦΛऔ͍͚ͬͯͳ͍ ▸ e.g. ͋ΒΏΔϝιουͰ null νΣοΫΛೖΕΔ ▸
ޚతʹͳΓ͗͢ΔͱޙʑͷϝϯςφϯεͰΛҾͬுͬͯ͠·͏ 11
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू NullPointerException ▸ ରࡦͷํ๏ ▸ ઃܭʹΑΔରࡦ ▸ ϝιου͕ null Λڐ༰͢Δ͔Ͳ͏͔ද໌͢Δ͜ͱͰɺ
୭͕null νΣοΫͷΛෛ͏͔ܾΊΔ ▸ NullObject ύλʔϯΛͬͯɺԿى͖ͳ͍Α͏ʹ͢Δ 12
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू NullPointerException ▸ ରࡦͷํ๏ ▸ ϑϨʔϜϫʔΫͷίʔυͷѲ ▸ Ͳ͏͍͏ঢ়گͰϝιου͕ null Λฦ͔͓ͬͯ͘͢
▸ Support Library ͷ࣮ଶΛ͓ͬͯ͘ ▸ ۭ࣮ͷ··ϦϦʔε͞Ε͍ͯΔ͕࣌͋Δ ▸ ϑϨʔϜϫʔΫͷ࡞๏ʹ४ͨ͡࡞ΓํΛ֮͑Δ 13
OutOfMemoryError 14
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू OutOfMemoryError ▸ ը૾ಈըͳͲେ͖ͳσʔλΛѻ͏ͱඞͣʹ͢Δྫ֎ ▸ จࣈ௨Γɺۭ͖ͷͳ͍ώʔϓʹΦϒδΣΫτΛ࡞Ζ͏ͱ͍ͯ͠Δͱ͖ʹى͖Δ ▸ ରࡦํ๏ΘΓͱ໌շ ▸ େ͖ͳΦϒδΣΫτΛখ͘͢͞Δ
▸ ಉ࣌ʹͨ͘͞ΜͷΦϒδΣΫτΛώʔϓʹೖΕͳ͍ ▸ ϝϞϦϦʔΫΛͳ͘͢ 15
StackOverflowError 16
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू StackOverflowError ▸ ελοΫΛ͍௵ͨ͠ͱ͖ʹى͖Δྫ֎ ▸ e.g. ແݶ࠶ؼݺͼग़͠ ▸ ݟམͱ͕ͪ͠ͳՕॴ ▸
ਂ͗͢ΔϨΠΞτͷωετ: ϨΠΞτ݁ہ Java ͷΦϒδΣΫτʹͳΔ ▸ ਂ͗͢Δґଘؔ: աͳϨΠϠԽͰϝιουͷίʔϧελοΫʹݶք͕͘Δ 17
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू StackOverflowError ▸ ରࡦํ๏ ▸ ϨΠΞτͷ֊ߏΛݮΒ͢ ▸ RelativeLayout ConstraintLayout
ͳͲͰϑϥοτͳߏʹ͢Δ ▸ దͳཻͰઃܭΛ͢Δ ▸ Clean Architecture DDD ͳͲΛࢀߟʹ 18
Illegal**Exception 19
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू Illegal**Exception ▸ छྨ৭ʑ ▸ IllegalStateException, IllegalArgumentException, etc… ▸ ݺͼग़͞ΕΔଆ͕ఆ͍ͯ͠ͳ͍ঢ়ଶɾҾʹ໘ͨ͠ͱ͖ʹى͖Δ
▸ ݺͼग़͢ଆ͕ҾνΣοΫঢ়ଶνΣοΫΛ͢Δ͜ͱΛཁٻ͍ͯ͠Δ ▸ ґଘͰެࣜͷ Javadoc ʹॻ͍ͯͳ͍ͱ͖ʹඈΜͰ͘Δ͜ͱ͕͋Δ ▸ ո͍͠ͳʁͱࢥͬͨΒ͙͢ʹঢ়ଶҾΛϩάʹͭΊͯूΊΒΕΔΈΛ 20
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू Illegal**Exception ▸ ରࡦํ๏ ▸ ͙͢ʹͤΔͷ͔ΓͰͳ͍͜ͱʹཹҙ͢Δ ▸ ඞཁͳใΛूΊɺରࡦΛ࿅͔ͬͯΒ͢͜ͱ ▸ Crashlytics
ͷϩάऩूػೳͰࣄલ݅ΛνΣοΫ͢ΔͱΑ͍ 21
CursorWindowAllocation Exception 22
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू CursorWindowAllocationException ▸ σʔλϕʔεΛѻ͏ͱʹ͢Δྫ֎ ▸ Cursor ͕ͭσʔλ͕ڐ༰ൣғΛ͑ͨͱ͖ʹى͖Δ ▸ ϦϑΝϨϯεʹ Javadoc
͕ແ͍ྫ֎͕ͩɺࡶʹ࡞Δͱܸ͢Δϋϝʹ ▸ CursorWindow ΫϥεͷதͰϋϯυϦϯά͍ͯ͠Δ ▸ CursorWindow.java: http://bit.ly/2eKlL5y 23
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू CursorWindowAllocationException ▸ ରࡦํ๏ ▸ ҰؾʹେྔͷσʔλΛऔಘ͍ͯ͠Δ෦ΛࡉΕʹ͢Δ ▸ σʔλϕʔεʹڊେͳσʔλΛอ͠ͳ͍ ▸ ͍ऴΘͬͨ
Cursor close ͢Δ 24
TransactionTooLarge Exception 25
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू TransactionTooLargeException ▸ ϓϩηεؒ௨৴ͰϝϞϦΛ͍͗ͨ͢ͱ͖ʹى͖Δྫ֎ ▸ 1ͭͷϓϩηεʹରׂͯ͠ΓͯΒΕΔϓϩηεؒ௨৴༻ͷྖҬ1mB ▸ ҙ֎ͳͱ͜ΖͰϓϩηεؒ௨৴ΘΕ͍ͯΔ ▸ Context#startActivity
▸ PackageManager#queryIntentActivities ▸ ଞଟ 26
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू TransactionTooLargeException ▸ Intent ͷ extra ʹ 1mB Λ͑Δ String
Λ͢͜ͱͰى͖Δఔʹۙͳͱ ͜ΖʹՄೳੑ͕͋Δ ▸ ରࡦํ๏ ▸ ڊେͳσʔλΛѻΘͳ͍ ▸ ϓϩηεؒ௨৴ͷ࣌ؒΛ͘͢Δ ▸ ϓϩηεؒ௨৴ͷճͦͷͷΛݮΒ͢ 27
DeadObjectException 28
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू DeadObjectException ▸ ࢮΜͩϓϩηεʹ͔͚ͨ͠ͱ͖ʹى͖Δྫ֎ ▸ ௨৴૬खͷϓϩηε͕͍ͭੜ͖͍ͯΔͱݶΒͳ͍ ▸ ରࡦํ๏ ▸ ServiceConnection
IBinder.DeathRecipient Ͱࢮ׆ࢹ ▸ ڊେͳσʔλΛ௨৴ʹͷͤͳ͍ ▸ System Service ࢮ׆ࢹͰ͖ͳͦ͞͏…… 29
·ͱΊ 30
31
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू ·ͱΊ ▸ ରࡦํ๏ͦͷͷʹֵ৽తͳ͜ͱ΄ͱΜͲແ͍ ▸ Α͋͘Δ࣮ྫΛͦͷ··ద༻Ͱ͖Δ͜ͱଟ͍ ▸ ߟ͑ํͷجຊ ▸ ॲཧͷ୯ҐσʔλΛখ͘͞ࡉ͔͘͢Δ
▸ ઃܭͱද໌ͰΛ໌Β͔ʹ͢Δ 32
க໋ইΛආ͚ΔͨΊͷྫ֎࣮ྫू ·ͱΊ ▸ ͍͔ʹૣ͘ใΛूΊͯରࡦ͕औΕΔ͔͕ॏཁ ▸ ஈ֊తϦϦʔε ▸ Ϋϥογϡϩάͷऩू ▸ ϢʔβϑΟʔυόοΫͷղੳ
33
க໋ইΛආ͚ΔͨΊͷ ྫ֎࣮ྫू Keishin Yokomaku / Startup Android #1
DroidKaigi Registration starts from mid-November! 35