Upgrade to Pro — share decks privately, control downloads, hide ads and more …

一人開発でつまづいたときの処方箋

 一人開発でつまづいたときの処方箋

DroidKaigi 2020で発表予定だった資料です。残念ながら中止となってしまったので、ブログに発表内容を書き下ろしてあります。
https://androhi.hatenablog.com/entry/2020/07/10/122254

Takahiro Shimokawa

July 10, 2020
Tweet

More Decks by Takahiro Shimokawa

Other Decks in Programming

Transcript

  1. Ұਓ։ൃͰͭ·͍ͮͨ
    ͱ͖ͷॲํᝦ
    %SPJE,BJHJԼ઒ܟ߂

    View Slide

  2. ΞδΣϯμ
    w ࣗݾ঺հ
    w Ϗϧυ͕௨Βͳ͍ͱ͖ͷॲํͤΜ
    w ΞϓϦ͕Ϋϥογϡ͢Δͱ͖ͷॲํͤΜ
    w ΞϓϦͷධՁ্͕͕Βͳ͍ͱ͖ͷॲํͤΜ

    View Slide

  3. ࣗݾ঺հ
    w ॴଐגࣜձࣾετϥΠϓσύʔτϝϯτ
    w "OESPJEΞϓϦ։ൃTNBSCZ
    w ۀ຿ҕୗ:QFSגࣜձࣾ
    w 3FBDU/BUJWFΞϓϦ։ൃ0,*11"
    w 5XJUUFS!BOESPIJ

    View Slide

  4. ঱ঢ়̍
    Ϗϧυ͕௨Βͳ͍

    View Slide

  5. JNQPSUΛਖ਼͘͠هड़͢Δ
    ༻๏ɿ"VUP*NQPSUઃఆ
    ༻ྔɿ"OESPJE4UVEJPΠϯετʔϧޙॳճ
    ࣗಈੜ੒ίʔυͷ࠶ੜ੒
    ༻๏ɿ1SPKFDUͷ$MFBOͱ#VJME
    ༻ྔɿϒϥϯνΛ੾Γସ͑ͨޙ
    ͍Ζ͍ΖͳΩϟογϡΛ࡟আ͢Δ
    ༻๏ɿΩϟογϡΫϦΞ
    ༻ྔɿݪҼෆ໌ͷϏϧυΤϥʔ͕ൃੜͨ࣌͠
    ॲɹํɹͤɹΜ

    View Slide

  6. "VUP*NQPSUઃఆ

    View Slide

  7. ݴޠ͝ͱʹ"VUP*NQPSUͷ
    ৼΔ෣͍ΛઃఆՄೳ

    View Slide

  8. "EEVOBNCJHVPVTJNQPSUTPOUIFqZ
    ᶃ৽͍͠Ϋϥε౳Λೖྗͨ͠ࡍʹɺ࠷దͳJNQPSUจΛ௥Ճͯ͘͠ΕΔ
    ᶄJNQPSUର৅͕໌֬ͳ৔߹ͷΈɺࣗಈͰJNQPSUจΛૠೖ͢Δ

    View Slide

  9. 0QUJNJ[FJNQPSUTPOUIFqZ
    ᶃϑΝΠϧ಺શମͷJNQPSUΛ࠷దԽͯ͘͠ΕΔ
    ᶄϑΝΠϧ಺ͷෆཁͳJNQPSUจ΍هड़ҐஔͳͲ΋ௐ੔ͯ͘͠ΕΔ
    ᶅखಈͰߦ͏ํ๏΋͋Δɻ$PEF0QUJNJ[F*NQPSUT $OU0QU0

    ˞ศརͳ൓໘ɺ๬·ͳ͍มߋ΋ൃੜ͢ΔՄೳੑ͕͋ΔͷͰɺࣗಈͱ
    खಈΛ͏·͘࢖͍෼͚Δඞཁ͕͋Γ·͢

    View Slide

  10. IUUQTXXXKFUCSBJOTDPNIFMQJEFBDSFBUJOHBOEPQUJNJ[JOH
    JNQPSUTIUNM TFDUJPO8JOEPXT$SFBUJOH@BOE@0QUJNJ[JOH@*NQPSUTYNM
    *OUFMMJ+*%&"ͷ"VUP*NQPSUʹؔ͢Δϔϧϓ

    View Slide

  11. 1SPKFDUͷ
    $MFBOͱ#VJME

    View Slide

  12. /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ
    /xxxx/xxx.java: Τϥʔ: γϯϘϧ͕ݟ͚ͭΒΕ·ͤΜ

    View Slide

  13. ࣗಈੜ੒͞ΕΔιʔείʔυ
    (MJEF΍%BHHFSͳͲͳͲʜʢ!(MJEF.PEVMF !$PNQPOFOU

    View Slide

  14. ௨ৗCVJMEσΟϨΫτϦ͸(JU؅ཧԽʹ͸ஔ͔ͳ͍ͨΊɺϒϥϯνΛ੾Γସ͑ͯ࡞ۀ͠
    ͨ৔߹ʹɺࣗಈੜ੒͞Εͨιʔείʔυͷ಺༰͕Ϛον͠ͳ͍έʔε͕ى͜Δɻ
    ͳͥʁ

    local.properties
    *.keystore
    *.DS_Store
    *.aab
    proguard-project.txt
    captures/**
    **/.gradle
    **/.settings
    **/build
    .gradle

    HJUJHOPSF

    View Slide

  15. w $MFBO1SPKFDU#VJMEશͯͷதؒϏϧυϑΝΠϧͱΩϟογϡϏϧυϑΝΠϧΛ࡟আ͢Δ
    w 3FCVJME1SPKFDU$MFBO1SPKFDUͨ͠ޙɺ"1,Λੜ੒͢Δ
    ղܾํ๏

    View Slide

  16. ΩϟογϡΫϦΞ
    DMFBO#VJME$BDIF

    View Slide

  17. ls -l ~/.android/build-cache/
    total 0
    drwxr-xr-x 4 shimokawa staff 128 2 11 12:57 3.5.1
    -rw-r--r-- 1 shimokawa staff 0 2 11 12:57 3.5.1.lock
    "OESPJE(SBEMF1MVHJO͕ੜ੒͢ΔϏϧυΩϟογϡ
    ˞ࠓ͸"OESPJEQMVHJOͷόʔδϣϯ͝ͱʹσΟϨΫτϦΛ࡞ΔͬΆ͍

    View Slide

  18. શͯͷϏϧυΩϟογϡΛ࡟আ͢Δ
    ./gradlew cleanBuildCache
    ls -l
    total 0
    -rw-r--r-- 1 shimokawa staff 0 2 11 12:57 3.5.1.lock
    ˞IUUQTEFWFMPQFSBOESPJEDPNTUVEJPCVJMECVJMEDBDIF IMKB

    View Slide

  19. ΩϟογϡΫϦΞ
    *OWBMJEBUFDBDIFBOESFTUBSU

    View Slide

  20. ϏϧυΩϟογϡͷ࡟আͰ΋ղܾग़དྷͳ͍৔߹ͷɺ࠷ऴखஈͱͯ͠ࢼ͢΂͖ΞΫγϣϯ
    ͳͥ࠷ऴखஈͳͷ͔ʁ
    શͯͷϩʔΧϧΩϟογϡΛ࡟আͯ͠͠·͏ͨΊɺ
    ࣍ʹϓϩδΣΫτΛ։͍ͨͱ͖΍ॳճϏϧυʹ͕͔͔࣌ؒΔ
    શͯͷϩʔΧϧώετϦʔ͕࡟আ͞Ειʔείʔυͷมߋཤྺ͕ࣦΘΕͯ͠͏ͨΊɺ
    ಛఆͷঢ়ଶʹϩʔϧόοΫग़དྷͳ͘ͳͬͯ͠·͏
    *OWBMJEBUFDBDIFBOESFTUBSUͱ͸ʁ

    View Slide

  21. *OUFMMJ+*%&"ͷΩϟογϡΫϦΞʹؔ͢Δϔϧϓ
    IUUQTXXXKFUCSBJOTDPNIFMQJEFBXPSLJOHXJUI
    QSPKFDUTIUNMJOWBMJEBUFDBDIF
    ˞ϏϧυΩϟογϡͱ͔Ͱ͸ແ͍ɺ༷ʑͳϩʔΧϧΩϟογϡΛ࡟আ͍ͯ͠ΔΒ͍͠

    View Slide

  22. ঱ঢ়̎
    ΞϓϦ͕Ϋϥογϡ͢Δ

    View Slide

  23. ݪҼΛ୳Δ
    ༻๏ɿ4UBDL5SBDFΛ෼ղͯ͠ಡΈղ͘
    ༻ྔɿΫϥογϡ͕खݩͰ࠶ݱग़དྷΔͱ͖
    ղܾͷώϯτΛूΊΔ
    ༻๏ɿྨࣅέʔεͷ*TTVFΛ୳͢
    ༻ྔɿࣗྗͰղܾग़དྷΔ໨ॲཱ͕ͨͳ͍ͱ͖
    ॲɹํɹͤɹΜ

    View Slide

  24. 4UBDL5SBDFΛ෼ղͯ͠ಡΈղ͘

    View Slide

  25. 2020-02-11 14:16:24.399 16984-16984/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 16984
    java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.smarby.debug/
    jp.smarby.activities.landing.RegisterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int
    java.lang.String.length()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a
    null object reference
    at jp.smarby.activities.landing.RegisterActivity.onCreate(RegisterActivity.java:105)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    OVMMΛࢀরͯ͠Ϋϥογϡ͍ͯ͠Δ৔߹ͷ4UBDL5SBDF

    View Slide

  26. 2020-02-11 14:16:24.399 16984-16984/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 16984
    java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.smarby.debug/
    jp.smarby.activities.landing.RegisterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int
    java.lang.String.length()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a
    null object reference
    at jp.smarby.activities.landing.RegisterActivity.onCreate(RegisterActivity.java:105)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    OVMMΛࢀরͯ͠Ϋϥογϡ͍ͯ͠Δ৔߹ͷ4UBDL5SBDF

    View Slide

  27. 2020-02-11 14:16:24.399 16984-16984/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 16984
    java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.smarby.debug/
    jp.smarby.activities.landing.RegisterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int
    java.lang.String.length()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a
    null object reference
    at jp.smarby.activities.landing.RegisterActivity.onCreate(RegisterActivity.java:105)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    OVMMΛࢀরͯ͠Ϋϥογϡ͍ͯ͠Δ৔߹ͷ4UBDL5SBDF

    View Slide

  28. 2020-02-11 14:16:24.399 16984-16984/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 16984
    java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.smarby.debug/
    jp.smarby.activities.landing.RegisterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int
    java.lang.String.length()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a
    null object reference
    at jp.smarby.activities.landing.RegisterActivity.onCreate(RegisterActivity.java:105)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    OVMMΛࢀরͯ͠Ϋϥογϡ͍ͯ͠Δ৔߹ͷ4UBDL5SBDF

    View Slide

  29. 2020-02-11 14:16:24.399 16984-16984/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 16984
    java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.smarby.debug/
    jp.smarby.activities.landing.RegisterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int
    java.lang.String.length()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a
    null object reference
    at jp.smarby.activities.landing.RegisterActivity.onCreate(RegisterActivity.java:105)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    OVMMΛࢀরͯ͠Ϋϥογϡ͍ͯ͠Δ৔߹ͷ4UBDL5SBDF

    View Slide

  30. 2020-02-11 14:16:24.399 16984-16984/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 16984
    java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.smarby.debug/
    jp.smarby.activities.landing.RegisterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int
    java.lang.String.length()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a
    null object reference
    at jp.smarby.activities.landing.RegisterActivity.onCreate(RegisterActivity.java:105)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    OVMMΛࢀরͯ͠Ϋϥογϡ͍ͯ͠Δ৔߹ͷ4UBDL5SBDF

    View Slide

  31. 2020-02-11 14:16:24.399 16984-16984/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 16984
    java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.smarby.debug/
    jp.smarby.activities.landing.RegisterActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int
    java.lang.String.length()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a
    null object reference
    at jp.smarby.activities.landing.RegisterActivity.onCreate(RegisterActivity.java:105)
    at android.app.Activity.performCreate(Activity.java:7136)
    at android.app.Activity.performCreate(Activity.java:7127)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    OVMMΛࢀরͯ͠Ϋϥογϡ͍ͯ͠Δ৔߹ͷ4UBDL5SBDF
    3FHJTUFS"DUJWJUZKBWBͷߦ໨Ͱ
    4USJOHΫϥεͷMFOHUIϝιουΛݺΜͰ͍ΔίʔυͰ
    Ϋϥογϡ͍ͯ͠Δ

    View Slide

  32. 2020-02-11 14:38:56.248 18143-18143/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 18143
    android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@1a76d12 is not
    valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:798)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
    at android.app.Dialog.show(Dialog.java:329)
    at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1009)
    at jp.smarby.activities.landing.RegisterActivity$3.run(RegisterActivity.java:300)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    ࢖༻͍ͯ͠Δ$POUFYU͕ద੾Ͱͳ͔ͬͨ৔߹ͷ4UBDL5SBDF

    View Slide

  33. 2020-02-11 14:38:56.248 18143-18143/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 18143
    android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@1a76d12 is not
    valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:798)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
    at android.app.Dialog.show(Dialog.java:329)
    at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1009)
    at jp.smarby.activities.landing.RegisterActivity$3.run(RegisterActivity.java:300)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    ࢖༻͍ͯ͠Δ$POUFYU͕ద੾Ͱͳ͔ͬͨ৔߹ͷ4UBDL5SBDF

    View Slide

  34. 2020-02-11 14:38:56.248 18143-18143/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 18143
    android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@1a76d12 is not
    valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:798)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
    at android.app.Dialog.show(Dialog.java:329)
    at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1009)
    at jp.smarby.activities.landing.RegisterActivity$3.run(RegisterActivity.java:300)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    ࢖༻͍ͯ͠Δ$POUFYU͕ద੾Ͱͳ͔ͬͨ৔߹ͷ4UBDL5SBDF

    View Slide

  35. 2020-02-11 14:38:56.248 18143-18143/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 18143
    android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@1a76d12 is not
    valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:798)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
    at android.app.Dialog.show(Dialog.java:329)
    at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1009)
    at jp.smarby.activities.landing.RegisterActivity$3.run(RegisterActivity.java:300)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    ࢖༻͍ͯ͠Δ$POUFYU͕ద੾Ͱͳ͔ͬͨ৔߹ͷ4UBDL5SBDF

    View Slide

  36. 2020-02-11 14:38:56.248 18143-18143/jp.smarby.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: jp.smarby.debug, PID: 18143
    android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@1a76d12 is not
    valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:798)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:356)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
    at android.app.Dialog.show(Dialog.java:329)
    at androidx.appcompat.app.AlertDialog$Builder.show(AlertDialog.java:1009)
    at jp.smarby.activities.landing.RegisterActivity$3.run(RegisterActivity.java:300)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
    ࢖༻͍ͯ͠Δ$POUFYU͕ద੾Ͱͳ͔ͬͨ৔߹ͷ4UBDL5SBDF
    3FHJTUFS"DUJWJUZKBWBͷߦ໨Ͱ
    "MFSU%JBMPH͕දࣔग़དྷͳ͔ͬͨʁͨΊ
    Ϋϥογϡ͍ͯ͠Δ

    View Slide

  37. Ͳ͏मਖ਼͢Ε͹Α͍ͷ͔ʁ

    View Slide

  38. Ϋϥογϡ͕࠶ݱग़དྷΔͷͳΒʜ
    w "OESPJE#BE5PLFO&YDFQUJPO"MFSU%JBMPHTIPXͳ
    ͲͷΩʔϫʔυͰݕࡧ͢Δ
    w ໰୊ͷίʔυΛݺͿλΠϛϯάΛม͑ͨΓɺ౉͢ύϥϝʔ
    λʔΛม͑ͨΓͯ͠ɺ࠶ݱ͢Δ৔߹ͱ࠶ݱ͠ͳ͍৔߹ͷ͠
    ͖͍஋Λ୳͢
    w ࣮ػΤϛϡϨʔλʔ04όʔδϣϯͳͲΛม͑ͯࢼͯ͠
    ΈΔ

    View Slide

  39. ྨࣅέʔεͷ*TTVFΛ୳͢

    View Slide

  40. ओཁͳ୳ࡧઌ
    w"OESPJE*TTVF5SBDLFS
    wSEQBSUZ-JCSBSZͷ(JU)VC

    View Slide

  41. "OESPJE*TTVF5SBDLFS
    w "041ʢ"OESPJE0QFO4PVSDF1SPKFDUʣͷαΠτʹৄ͠
    ͘આ໌͕͋Γ·͢
    w IUUQTTPVSDFBOESPJEDPNTFUVQDPOUSJCVUF
    SFQPSUCVHT
    w ஫ҙ఺ͱͯ͠ίϯϙʔωϯτͱ͍͏୯ҐͰόάใࠂઌ͕ผ
    Ε͍ͯ·͢
    w IUUQTTPVSDFBOESPJEDPNTFUVQDPOUSJCVUF
    SFQPSUCVHTCVHRVFVFT

    View Slide

  42. SE1BSUZ-JCSBSZͷ(JU)VC
    w 3FUSPpU΍(MJEFͳͲଟ͘ͷαʔυύʔςΟ੡ϥΠϒϥϦ
    ͸ɺιʔείʔυͱڞʹόάใࠂͱରԠ΋ެ։͞Ε͍ͯ·
    ͢
    w IUUQTHJUIVCDPNTRVBSFSFUSPpUJTTVFT
    w IUUQTHJUIVCDPNCVNQUFDIHMJEFJTTVFT

    View Slide

  43. 4UBDL5SBDFͱ޲͖߹ͬͯ
    ෆ۩߹मਖ਼ͷצॴΛ஁͑Δ

    View Slide

  44. ঱ঢ়̏
    ΞϓϦͷධՁ্͕͕Βͳ͍

    View Slide

  45. 1MBZ$POTPMFͰΞϓϦͷ՝୊Λ୳͢
    ༻๏ɿ"OESPJE7JUBMTͰΞϓϦͷΫΦϦςΟΛνΣοΫ
    ༻ྔɿΞϓϦΛϦϦʔεͨ͠ޙͳͲ༨ྗ͕͋Δͱ͖
    1MBZ$POTPMFͰڝ߹ΞϓϦͷධՁΛݟΔ
    ༻๏ɿϢʔβʔͷ೔ৗͷମݧΛνΣοΫ
    ༻ྔɿΞϓϦΛϦϦʔεͨ͠ޙͳͲ༨ྗ͕͋Δͱ͖
    ॲɹํɹͤɹΜ

    View Slide

  46. "OESPJE7JUBMTͰ
    ΞϓϦͷΫΦϦςΟΛνΣοΫ

    View Slide

  47. "OESPJE7JUBMTͱ͸ʁ

    View Slide

  48. "OESPJE7JUBMT
    ɾΞϓϦͷٕज़తύϑΥʔϚϯεͷϞχλϦϯά
    ɾσόΠεͷ࢖༻ঢ়گσʔλ΍਍அ৘ใʹ͍ͭͯɺࣗಈ
    ڞ༗Λ༗ޮʹઃఆͨ͠Ϣʔβʔ͔Βऩू͞ΕͨσʔλͰ
    ࢉग़͍ͯ͠Δɻ

    View Slide

  49. ϞχλϦϯάՄೳͳσʔλ
    ి஑࢖༻ྔ
    ա౓ͷXBLFVQʗ8J'JεΩϟϯʗωοτϫʔΫ࢖༻ྔ
    ҆ఆੑ
    "/3ൃੜ཰ʗΫϥογϡൃੜ཰
    දࣔʹཁ͢Δ࣌ؒ
    ஗͍ϨϯμϦϯάʗϑϦʔζͨ͠6*ϑϨʔϜ
    ΞϓϦͷελʔτΞοϓ࣌ؒ
    ίʔϧυʗ΢ΥʔϜʗϗοτελʔτΞοϓ࣌ؒ
    ݖݶ
    ݖݶϦΫΤετͷڋ൱

    View Slide

  50. ࣗ෼ͷΞϓϦ͕ͲͷϨϕϧͷΫΦϦςΟͳͷ͔
    ૬ରతʹνΣοΫग़དྷΔ

    View Slide

  51. Ϣʔβʔͷ೔ৗͷମݧΛνΣοΫ

    View Slide

  52. ྨࣅΞϓϦͷάϧʔϓͱࣗ෼ͷΞϓϦΛൺֱ͢Δ
    ᶃ "OESPJE7JUBMT΍ϢʔβʔධՁΛɺબ୒ͨ͠ΞϓϦͷάϧʔϓͱൺֱग़དྷΔػೳ
    ᶄ 7JUBMT༻ͱධՁ༻ͱͭͷάϧʔϓΛ࡞੒ग़དྷΔ
    ᶅ 7JUBMT༻͸ΦϓτΞ΢τ͢Δ͜ͱͰ7JUBMTΛଞͷΞϓϦͱൺֱͨ͠Γɺଞͷσϕϩο
    ύʔ͕ྨࣅΞϓϦͱͯ͠બ୒ग़དྷͳ͍Α͏ʹ͢Δ͜ͱ͕ग़དྷΔ

    View Slide

  53. 7JUBMTͷάϧʔϓฤू
    ධՁͷάϧʔϓฤू

    View Slide

  54. ॳظઃఆͰ͸ಉ͡ΧςΰϦͷ
    ͓͢͢ΊΞϓϦ͕άϧʔϓԽ͞Ε͍ͯΔ
    άϧʔϓʹ͸ࣗ༝ʹଞࣾΞϓϦΛ
    ௥Ճʗ࡟আ͢Δ͜ͱ͕ग़དྷΔ
    ˞ͨͩ͠ɺ͜ΕΛ׆༻ͨ͠ධՁϕϯνϚʔΫ
    ػೳ͸ݱࡏ͸ӳޠϨϏϡʔͷΈͱͳ͍ͬͯΔ

    View Slide

  55. ϨϏϡʔʹॻ͔Εͨ಺༰͔ΒΩʔϫʔυΛ
    ϐοΫΞοϓͯ͠ɺͲͷΑ͏ʹධՁ΁Өڹ͠
    ͍ͯΔ͔Λ஌Δ͜ͱ͕ग़དྷΔɻ
    ·ͨϦϯΫΛΫϦοΫ͢Ε͹ɺΩʔϫʔυΛ
    ؚΉϨϏϡʔҰཡΛදࣔͯ͘͠ΕΔ
    શͯͷϨϏϡʔΛνΣοΫ͢Δͷ͸େมͳͷ
    ͰɺϨϏϡʔղੳػೳΛ࢖ͬͯޮ཰తʹϢʔ
    βʔͷ੠ΛΩϟον͢Δ

    View Slide

  56. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide