{"id":138013,"date":"2021-09-29T00:00:00","date_gmt":"2021-09-29T00:00:00","guid":{"rendered":"https:\/\/adapty.io\/blog\/android-in-app-purchases-part-4-billing-library-error-codes-and-how-not-to-fail-testing\/"},"modified":"2025-06-26T13:05:05","modified_gmt":"2025-06-26T13:05:05","slug":"android-in-app-purchases-part-4-billing-library-error-codes-and-how-not-to-fail-testing","status":"publish","type":"post","link":"https:\/\/adapty.io\/ko\/blog\/android-in-app-purchases-part-4-billing-library-error-codes-and-how-not-to-fail-testing\/","title":{"rendered":"Android \uc778\uc571 \uad6c\ub9e4, 4\ubd80: \uacb0\uc81c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc624\ub958 \ucf54\ub4dc \ubc0f \ud14c\uc2a4\ud2b8\ub97c \ub9dd\uce58\uc9c0 \uc54a\ub294 \ubc29\ubc95"},"content":{"rendered":"

\uc624\ub298\uc6b0\ub9ac\ub294getResponseCode()<\/a>\uba54\uc18c\ub4dc\uc5d0\uc11c\uacb0\uc81c \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ud1b5\ud574 \ubcfc \uc218 \uc788\ub294\uc624\ub958 \ucf54\ub4dc<\/a>\uc5d0\ub300\ud574 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>

\ucf5c\ubc31\uc5d0\uc624\ub958\ub97c \uc804\ub2ec\ud55c \ubc29\ubc95\uc758 \uc608\ub294\uc774 \uae30\uc0ac<\/a>\uc5d0\uc11c\ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\uc6b0\ub9ac\ub294\uc774\ubbf8 \uc774\uc804 \uae30\uc0ac\uc5d0\uc11c \uc0ac\uc6a9\uc790\uac00 \uc544\ubb34\uac83\ub3c4 \uad6c\ub9e4\ud558\uc9c0 \uc54a\uace0\uad6c\ub9e4 \ub300\ud654 \uc0c1\uc790\ub97c \ub2eb\uc744 \ub54c \ubc1c\uc0dd\ud558\ub294 \uc624\ub958 \uc911 \ud558\ub098\uc778USER_CANCELED<\/strong><\/a>\ub97c\uc0b4\ud3b4\ubcf4\uc558\uc2b5\ub2c8\ub2e4.\ub2e4\ub978\uc624\ub958\ub4e4\uc744 \uc54c\uc544 \ubd05\uc2dc\ub2e4.<\/p>

ERROR\uc640DEVELOPER_ERROR<\/h2>

\ucc98\uc74c\uc0b4\ud3b4\ubcfc \uc624\ub958\ub294ERROR<\/strong><\/a>(responseCode 6)\uc640DEVELOPER_ERROR<\/strong><\/a>(responseCode 5)\uc785\ub2c8\ub2e4.\uccab\ubc88\uc9f8\uc758 \uacbd\uc6b0,Google\uc740”Fatalerror during the API action\u201d \ubb38\uc11c\ub97c\uae30\ub85d\ud558\uace0 \ub450 \ubc88\uc9f8\uc758 \uacbd\uc6b0 “Invalidarguments provided to the API\u201d\ub97c\uae30\ub85d\ud569\ub2c8\ub2e4.\uc608\ub97c\ub4e4\uc5b4,querySkuDetailsAsync()<\/a>\uc694\uccad\uc744\uc704\ud574setType()<\/a>\uc73c\ub85c\ube48 \ubb38\uc790\uc5f4\uc744 \ube4c\ub354\uc5d0 \uc804\ub2ec\ud588\uc744 \ub54c DEVELOPER_ERROR\ub97c\uc5bb\uc744 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>

\ud558\uc9c0\ub9cc\uadf8\ub807\uac8c \uac04\ub2e8\ud55c \uac83\uc740 \uc544\ub2d9\ub2c8\ub2e4.\uacc4\uc18d\uc9c4\ud589\ud558\uba74\uc11c launchBillingFlow()<\/a>\uba54\uc18c\ub4dc\uc5d0\uc11c\uc218\uc815\ub41cSkuDetails<\/a>\ub97c\uc0ac\uc6a9\ud588\uc2b5\ub2c8\ub2e4.(\uc2e4\uc81c\uc81c\ud488\uc758 SkuDetails\uc5d0\uc11cjson(json)\uc744\uac00\uc838\uc640\uc11c productID\ub97c\ubcc0\uacbd\ud558\uace0 \uc0c8 SkuDetails\uc81c\uc791\uc790\uc5d0\uac8c\uc804\ub2ec\ud588\uc2b5\ub2c8\ub2e4)\uc0ac\uc2e4,\uc774\uac83\uc740\uadfc\uac70 \uc5c6\ub294 \uc8fc\uc7a5\uc774\uace0,\ub098\ub294DEVELOPER_ERROR<\/strong>\ub97c\uc5bb\uc744 \uac70\ub77c\uace0 \uc608\uc0c1\ud588\uc9c0\ub9cc …ERROR<\/strong>\ub97c\uc5bb\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>

\ubb3c\ub860\uc774\uac83\uc740 \uc778\uc704\uc801\uc778 \uc608\uc600\uc2b5\ub2c8\ub2e4.\uad6c\uae00\uc774\uacb0\uc81c\ub97c \uac70\ubd80\ud55c \uacbd\uc6b0\uac00 \ud6e8\uc52c \ud604\uc2e4\uc801\uc778 \uc0ac\ub840\uc785\ub2c8\ub2e4.\uae30\uc0ac\ub05d\ubd80\ubd84\uc5d0\uc11c \uc54c\ub824\ub4dc\ub9ac\uaca0\uc9c0\ub9cc,\ud14c\uc2a4\ud2b8\uce74\ub4dc\ub85c \uad6c\ub9e4\ub97c \ud14c\uc2a4\ud2b8\ud560 \ub54c \uad6c\ub9e4 \ub300\ud654 \uc0c1\uc790\uc5d0\uc11c “testcard, always declined\u201d\ub97c\uc120\ud0dd\ud558\uba74 \uc801\uc808\ud55c \ud14d\uc2a4\ud2b8\uc640 \ud568\uaed8 ERROR<\/strong>\uc5ed\uc2dc\ubc18\ud658\ub429\ub2c8\ub2e4.<\/p>

\uad6c\ub3c5(subscription)\ubcc0\uacbd\uc744\uc124\uba85\ud55c\uc138 \ubc88\uc9f8 \uae30\uc0ac<\/a>\uc5d0\uc11c,\uc6b0\ub9ac\ub294\ube44\ub840 \ubc30\ubd84 \ubc29\uc2dd \uc911 \ud558\ub098\uc5d0 \ub300\ud574 \uc5f0\uac04 \uad6c\ub3c5 \uac00\uaca9\uc744 \uac70\uc7583\ubc30\ub098\uc778\uc0c1\ud588\ub294\ub370,\uadf8\ub807\uac8c\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \ubc1c\uc0dd\ud588\uc5b4\uc57c \ud558\ub294 \uc2e4\uc218\uac00 \ubb34\uc5c7\uc778\uc9c0\uc5d0\ub300\ud574\uc11c\ub294 \ub9d0\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.\uac1c\uc815\uc911\uc785\ub2c8\ub2e4.<\/p>

\uc798\ubabb\ub41c\ube44\ub840 \ubc30\ubd84 \ubaa8\ub4dc\uac00 \uc9c0\uc815\ub41c \uac83\uc73c\ub85c \ubc1d\ud600\uc84c\uae30 \ub54c\ubb38\uc5d0,\ub17c\ub9ac\uc801\uc73c\ub85c\ub3d9\uc77c\ud55c DEVELOPER_ERROR<\/strong>\uc744\uac00\uc838\uc640\uc57c \ud569\ub2c8\ub2e4.\uadf8\ub300\uc2e0, SERVICE_UNAVAILABLE<\/strong><\/a>(responseCode 2)\ub97c\uc5bb\uc5c8\uc2b5\ub2c8\ub2e4.\ub610\ud55c\ube44\ub840 \ubc30\ubd84 \ubaa8\ub4dc\ub85c \ubd80\uc801\uc808\ud55c \uc22b\uc790\ub97c \uc785\ub825\ud558\uace0 (\uc774\uac83\uc740enum\uc774\uc544\ub2c8\ub77c int\uc785\ub2c8\ub2e4.\uc544\ubb34\ub3c4\uc6b0\ub9ac\ub97c \ub9c9\uc744 \uc218 \uc5c6\uc8e0.)\uc798\ubabb\ub41cpurchaseToken\uc744\uc9c0\uc815\ud558\ub294 \uacbd\uc6b0\uc5d0\ub3c4 \uc774\ub97c \uc5bb\uc2b5\ub2c8\ub2e4.SERVICE_UNAVAILABLE<\/strong>\uc5d0\ub300\ud55c \ubb38\uc11c\ub97c \uc0b4\ud3b4\ubcf4\uba74 …\uc7a0\uae50,\uc774\uac8c\ubb50\uc8e0?!”Network connection is down.”\uc774\ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/p>

\ub3d9\uc2dc\uc5d0\uc774\uc0c1\ud55c \ub300\ud654 \uc0c1\uc790\ub3c4 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/p>

\"\"<\/figure>

ERROR<\/strong>\uc758\uacbd\uc6b0 \ub610 \ud55c \uac00\uc9c0 \ud765\ubbf8\ub85c\uc6b4 \uac83\uc740 “\ud655\uc778”\ubc84\ud2bc\uc744\ub204\ub974\uc9c0 (\uc989,”\ub4a4\ub85c\uac00\uae30”\ub85c\ud574\uc11d\ub418\ub294 \uc218\ub2e8\uc744 \ud1b5\ud558\uc9c0)\uc54a\uace0<\/strong>\ub300\ud654 \uc0c1\uc790\ub97c \ub2eb\uc73c\uba74 ERROR<\/strong>\uac00onPurchasesUpdated()<\/a>\uc5d0\ubc1c\uc0dd\ud558\uace0,SERVICE_UNAVAILABLE<\/strong>\uc758\uacbd\uc6b0 \ube44\uc2b7\ud55c \uc0c1\ud669\uc5d0\uc11c USER_CANCELED<\/strong>\uac00\ub098\ud0c0\ub0a9\ub2c8\ub2e4.(\uadf8\ub7ec\ub098\ub300\ud654 \uc0c1\uc790\uc5d0\uc11c “OK”\ub97c\ud074\ub9ad\ud558\uba74 \uc608\uc0c1\ud560 \uc218 \uc788\ub4ef\uc774 SERVICE_UNAVAILABLE<\/strong>\ub97c\ubc1b\uac8c \ub429\ub2c8\ub2e4)<\/p>

\uadf8\ub9ac\uace0\uc778\ud130\ub137 \uc5f0\uacb0\uc774 \ub04a\uae34 \uacbd\uc6b0\uc5d0\ub294 SERVICE_UNAVAILABLE<\/strong>\uac00\uc2e4\uc81c\ub85c \ub098\uc635\ub2c8\ub2e4.<\/p>

\uc624\ub958\ucf54\ub4dc<\/h2>

\ub2e4\uc74c\uc740\uc791\uc740 \uc8fc\uc11d\uc774 \ub2ec\ub9b0 \uc624\ub958 \ucf54\ub4dc\ub4e4\ub85c,\uc120\uc678\uac00\uc791\uc774\ub77c\uace0 \ud560\ub9cc\ud55c \uac83\ub4e4\uc785\ub2c8\ub2e4.<\/p>