{"id":550,"date":"2025-06-29T19:43:59","date_gmt":"2025-06-29T10:43:59","guid":{"rendered":"https:\/\/kurotsushirou.com\/techinfo\/?p=550"},"modified":"2025-06-30T13:44:34","modified_gmt":"2025-06-30T04:44:34","slug":"jdk17-gradle8-9%e3%81%ab%e3%82%88%e3%82%8bandroid%e3%82%a2%e3%83%97%e3%83%aa%ef%bc%88%e3%83%8f%e3%82%a4%e3%83%96%e3%83%aa%e3%83%83%e3%83%89%e5%8f%8a%e3%81%b3web%e7%b3%bb%ef%bc%89%e3%81%ae%e3%83%91","status":"publish","type":"post","link":"https:\/\/kurotsushirou.com\/techinfo\/?p=550","title":{"rendered":"JDK17 Gradle8.9\u306b\u3088\u308bAndroid\u30a2\u30d7\u30ea\uff08\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u53ca\u3073Web\u7cfb\uff09\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u30f3\u30b0\u306b\u3064\u3044\u3066\u3001\u8a73\u7d30\u3092\u7d30\u3005\u3068\u66f8\u304d\u8a18\u3057\u307e\u3059\u3002\u6700\u8fd1\u306e\u4e3b\u6d41\u306f2025\u5e74\u6642\u70b9\u3067\u3082JDK11\u3060\u305d\u3046\u3067\u3059\u304c\u3001JDK\u3092\u5c06\u6765\u7684\u306bUPGrade\u3055\u308c\u308b\u65b9\u5411\u3051\u306e\u8a18\u4e8b\u306b\u306a\u308a\u305d\u3046\u3067\u3059\u3002\u307e\u305f\u3001\u30a2\u30d7\u30ea\u306b\u5e83\u544a\u3092\u633f\u5165\u3059\u308b\u969bCordova\u3092\u7528\u3044\u3066admob-plus-cordova\u3092\u5c0e\u5165\u3059\u308b\u6642\u3001Kotlin\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u5fc5\u8981\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u3002\u305d\u306e\u30ab\u30d0\u30fc\u3092\u3059\u308b\u305f\u3081\u3001\u8a18\u4e8b\u306b\u8d77\u3053\u3057\u307e\u3057\u305f\u3002"},"content":{"rendered":"\n<p>\u7b46\u8005\u306e\u74b0\u5883\u3067\u3001Android\u7248\u306e\u30a2\u30d7\u30ea\u3092\u69cb\u7bc9\u3059\u308b\u969b\u306bCordova\u3092\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3068\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\u3001JDK17\u3068Gradle8.9\u3067\u30a2\u30d7\u30ea\u3092\u30d3\u30eb\u30c9\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>AI\u306b\u52a9\u529b\u3092\u5f97\u306a\u304c\u3089\u596e\u95d8\u3057\u305f\u8a18\u4e8b\u3092\u307e\u3068\u3081\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u306e\u3067\u3001\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u30a2\u30d7\u30ea\u3092\u4f5c\u3063\u3066\u307f\u305f\u3044\u307e\u305f\u306f\u3001Web\u7cfb\u8a00\u8a9e\u3067\u69cb\u6210\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u7fa4\u3092Android\u7248\u30a2\u30d7\u30ea\u3068\u3057\u3066\u307f\u305f\u3044\u3068\u304a\u8003\u3048\u306e\u65b9\u306f\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u5148\u306b\u89e6\u308c\u3066\u304a\u304d\u307e\u3059\u304c\u3001RPGMakerMV\/MZ\u3067\u306f\u4ee5\u4e0b\u306e\u8a18\u4e8b\u306e\u3088\u3046\u306a\u82e6\u52b4\u306f\u307b\u3068\u3093\u3069\u306a\u3044\u306e\u3067\u3059\u304c\u3001\u305d\u308c\u3067\u3082\u30a2\u30d7\u30ea\u306e\u30d3\u30eb\u30c9\u304c\u4e0a\u624b\u304f\u884c\u304b\u306a\u3044\u306a\u3001\u30a2\u30d7\u30ea\u306e\u30d3\u30eb\u30c9\u3092\u52b9\u7387\u3088\u304f\u3067\u304d\u306a\u3044\u304b\u306a\u3068\u304a\u8003\u3048\u306e\u65b9\u3082\u3054\u89a7\u3044\u305f\u3060\u3051\u308c\u3070\u3001\u5f8c\u3005\u306e\u30a2\u30d7\u30ea\u306e\u66f4\u65b0\u3084GooglePlay\u30b3\u30f3\u30bd\u30fc\u30eb\u304b\u3089\u306e\u8981\u6c42\u3092\u6e80\u305f\u3059\u306e\u306b\u5fc5\u8981\u306a\u77e5\u898b\u3068\u306a\u308a\u307e\u3059\u306e\u3067\u3001\u5e83\u304f\u30aa\u30fc\u30d7\u30f3\u306b\u516c\u958b\u3044\u305f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u307e\u305a\u3001Android\u7248\u30d3\u30eb\u30c9\u306b\u5fc5\u8981\u306a\u7b46\u8005PC\u5185\u90e8\u306e\u30b9\u30da\u30c3\u30af\uff08\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u7ba1\u7406\u8005\u6a29\u9650\u3067\u8d77\u52d5\u3057\u3066\u3044\u307e\u3059\u3002\uff09<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"979\" height=\"511\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/c3a144bffd8ea537879e997ba273f1e3.png\" alt=\"\" class=\"wp-image-552\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/c3a144bffd8ea537879e997ba273f1e3.png 979w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/c3a144bffd8ea537879e997ba273f1e3-300x157.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/c3a144bffd8ea537879e997ba273f1e3-768x401.png 768w\" sizes=\"auto, (max-width: 979px) 100vw, 979px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"626\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/0f504d8daafd929905a1c2e250cebde7-1024x626.png\" alt=\"\" class=\"wp-image-553\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/0f504d8daafd929905a1c2e250cebde7-1024x626.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/0f504d8daafd929905a1c2e250cebde7-300x183.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/0f504d8daafd929905a1c2e250cebde7-768x470.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/0f504d8daafd929905a1c2e250cebde7.png 1506w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"631\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/48311159d6194c380415e3e21c042f47-1024x631.png\" alt=\"\" class=\"wp-image-554\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/48311159d6194c380415e3e21c042f47-1024x631.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/48311159d6194c380415e3e21c042f47-300x185.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/48311159d6194c380415e3e21c042f47-768x473.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/48311159d6194c380415e3e21c042f47.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"632\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/46d906af029bb0b1e3d1095ffff83491-1-1024x632.png\" alt=\"\" class=\"wp-image-556\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/46d906af029bb0b1e3d1095ffff83491-1-1024x632.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/46d906af029bb0b1e3d1095ffff83491-1-300x185.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/46d906af029bb0b1e3d1095ffff83491-1-768x474.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/46d906af029bb0b1e3d1095ffff83491-1.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"632\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3560b5315edfaa04bccacfeb84b1a7c2-1024x632.png\" alt=\"\" class=\"wp-image-557\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3560b5315edfaa04bccacfeb84b1a7c2-1024x632.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3560b5315edfaa04bccacfeb84b1a7c2-300x185.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3560b5315edfaa04bccacfeb84b1a7c2-768x474.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3560b5315edfaa04bccacfeb84b1a7c2.png 1503w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/6fd03d92d11656f4d7b1e85413d40cf3-1024x623.png\" alt=\"\" class=\"wp-image-558\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/6fd03d92d11656f4d7b1e85413d40cf3-1024x623.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/6fd03d92d11656f4d7b1e85413d40cf3-300x183.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/6fd03d92d11656f4d7b1e85413d40cf3-768x468.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/6fd03d92d11656f4d7b1e85413d40cf3.png 1498w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3befba8816296f04bc0e52bd95da8ebb-1024x623.png\" alt=\"\" class=\"wp-image-559\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3befba8816296f04bc0e52bd95da8ebb-1024x623.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3befba8816296f04bc0e52bd95da8ebb-300x182.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3befba8816296f04bc0e52bd95da8ebb-768x467.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/3befba8816296f04bc0e52bd95da8ebb.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"632\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/fabd8902bf31b11c4388d5e65955c5a9-1024x632.png\" alt=\"\" class=\"wp-image-560\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/fabd8902bf31b11c4388d5e65955c5a9-1024x632.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/fabd8902bf31b11c4388d5e65955c5a9-300x185.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/fabd8902bf31b11c4388d5e65955c5a9-768x474.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/fabd8902bf31b11c4388d5e65955c5a9.png 1495w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"630\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/e9f11c20d012d9bf291a6a9505b3df88-1024x630.png\" alt=\"\" class=\"wp-image-561\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/e9f11c20d012d9bf291a6a9505b3df88-1024x630.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/e9f11c20d012d9bf291a6a9505b3df88-300x184.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/e9f11c20d012d9bf291a6a9505b3df88-768x472.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/e9f11c20d012d9bf291a6a9505b3df88.png 1503w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"628\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/42d2c116943de481e1ad015071046030-1024x628.png\" alt=\"\" class=\"wp-image-562\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/42d2c116943de481e1ad015071046030-1024x628.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/42d2c116943de481e1ad015071046030-300x184.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/42d2c116943de481e1ad015071046030-768x471.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/42d2c116943de481e1ad015071046030.png 1500w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u3068\u3044\u3046\u611f\u3058\u3067\u3000sdkmanager &#8211;list\u306e\u30b3\u30de\u30f3\u30c9\u3092\u53e9\u304f\u3068\u3001\u975e\u5e38\u306b\u9577\u3044\u30ea\u30b9\u30c8\u306eAndroid Sdk\u306e\u5185\u90e8\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308bAndroid API\u304c\u898b\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>AndroidStudio\u3067\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u63a8\u5968\u3057\u307e\u3059\u304c\u3001SDKManager\u3092\u4f7f\u3063\u3066API33\u4ee5\u964d\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u3001\u3053\u306e\u30ea\u30b9\u30c8\u306b\u4f3c\u3066\u3044\u308b\u611f\u3058\u306b\u306a\u308a\u307e\u3059\u3002(\u753b\u50cf\u306fAPI33\uff5e36\u307e\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u307e\u3059\uff09<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u518d\u4e09\u306b\u308f\u305f\u3063\u3066\u8a00\u53ca\u3057\u3066\u3044\u307e\u3059\u304c\u3001Windows\u306e\u30b7\u30b9\u30c6\u30e0\u74b0\u5883\u5909\u6570\u306bPATH\u3092\u901a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"789\" height=\"302\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/9edb45f4ae81fa15e9b592a193c98510.png\" alt=\"\" class=\"wp-image-563\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/9edb45f4ae81fa15e9b592a193c98510.png 789w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/9edb45f4ae81fa15e9b592a193c98510-300x115.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/9edb45f4ae81fa15e9b592a193c98510-768x294.png 768w\" sizes=\"auto, (max-width: 789px) 100vw, 789px\" \/><\/figure>\n\n\n\n<p>node.js\u306f\u6700\u65b0\u306e\u5b89\u5b9a\u7248\uff08LTS)\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u3066\u3001<\/p>\n\n\n\n<p>\u5f8c\u8ff0\u3057\u307e\u3059\u304c\u3001cordova\u306f12.0\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u307e\u3059\u3001\u304a\u305d\u3089\u304f14.0\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u308b\u3068\u601d\u3044\u307e\u3059\u304c\u3001npm -g cordova\u3092\u4f7f\u3046\u3068\u300114.0 \u3067\u3082\u554f\u984c\u306f\u306a\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>npm\u306f11.4.2\u306a\u306e\u30672025\u5e746\u670829\u65e5\u6642\u70b9\u3067\u6700\u65b0\u7248\u306e\u306f\u305a\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3055\u3066\u3001cordova 14.0.0\u306a\u306e\u3067\u3059\u304c\u3001npm\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u524d\u306e\u30b5\u30fc\u30af\u30eb\u30ea\u30fc\u30b0\u3068\u3044\u3046\u30a2\u30d7\u30ea\u3067\u306f14.\uff10.\uff10\u3067\u52d5\u4f5c\u3057\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u30a2\u30d7\u30ea\u306b\u5e83\u544a\u3092\u5165\u308c\u308b\u95a2\u4fc2\u304b\u3089Cordova\u3092\u30c0\u30a6\u30f3\u30b0\u30ec\u30fc\u30c9\u3057\u3001\u30c7\u30b7\u30e5\u30ac\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066cordova12.0.0\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u306fadmob-plus-cordova\u3068\u306e\u6574\u5408\u6027\u3092\u4fdd\u3064\u305f\u3081\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u5f8c\u8ff0\u90e8\u5206\u306e\u30c7\u30b7\u30e5\u30ac\u30fc\u30d5\u30a1\u30a4\u30eb\u3068\u3044\u3046\u3042\u307e\u308a\u805e\u304d\u6163\u308c\u306a\u3044\u30d5\u30a1\u30a4\u30eb\u3092Gemini\u304c\u4f5c\u6210\u3057\u3066\u304f\u308c\u307e\u3057\u305f\u3002\u307e\u305f\u306f\u4f5c\u6210\u306fGemini\u304c\u884c\u3044\u3001\u30d5\u30a1\u30a4\u30eb\u306e\u914d\u7f6e\u306f\u624b\u52d5\u3067\u3057\u305f\u304c\u2026\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"844\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/545a0a1ec6659ecc7b4a03711d5f469a.png\" alt=\"\" class=\"wp-image-564\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/545a0a1ec6659ecc7b4a03711d5f469a.png 902w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/545a0a1ec6659ecc7b4a03711d5f469a-300x281.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/545a0a1ec6659ecc7b4a03711d5f469a-768x719.png 768w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"814\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/748aef6e55a8793a6b557477c2195877-1024x814.png\" alt=\"\" class=\"wp-image-565\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/748aef6e55a8793a6b557477c2195877-1024x814.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/748aef6e55a8793a6b557477c2195877-300x238.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/748aef6e55a8793a6b557477c2195877-768x610.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/748aef6e55a8793a6b557477c2195877.png 1116w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"900\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/bc088fe49e6c32c1a18b168d6868dadb.png\" alt=\"\" class=\"wp-image-566\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/bc088fe49e6c32c1a18b168d6868dadb.png 903w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/bc088fe49e6c32c1a18b168d6868dadb-300x300.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/bc088fe49e6c32c1a18b168d6868dadb-150x150.png 150w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/bc088fe49e6c32c1a18b168d6868dadb-768x765.png 768w\" sizes=\"auto, (max-width: 903px) 100vw, 903px\" \/><\/figure>\n\n\n\n<p>\u30c7\u30b7\u30e5\u30ac\u30fc\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u8eab<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/env node\n\n\/**\n * Android \u306e Core Library Desugaring \u304a\u3088\u3073 Java 8 (Desugar) \u30b5\u30dd\u30fc\u30c8\u3092\u6709\u52b9\u306b\u3059\u308b\u30d5\u30c3\u30af\u3002\n * Cordova Android 10+ (Gradle \u30d9\u30fc\u30b9) \u304a\u3088\u3073\u6700\u65b0\u306e Android Gradle Plugin \u306b\u5bfe\u5fdc\u3002\n *\n * \u3053\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u306f `after_prepare` \u30d5\u30a7\u30fc\u30ba\u3067\u5b9f\u884c\u3055\u308c\u3001\n * `platforms\/android\/app\/build.gradle`\u3001`platforms\/android\/project.properties`\u3001\n * `platforms\/android\/gradle.properties` \u30d5\u30a1\u30a4\u30eb\u3092\u4fee\u6b63\u3057\u307e\u3059\u3002\n *\n * \u30ed\u30b0\u306f `console.log` \u3092\u4f7f\u7528\u3057\u3066 Cordova CLI \u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002\n *\/\n\nconst fs = require('fs');\nconst path = require('path');\n\nmodule.exports = function(context) {\n    console.log('Running hook: Enable Core Library Desugaring for Android...');\n\n    \/\/ \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u53d6\u5f97 (c:\\circle \u306a\u3069)\n    const rootdir = context.opts.projectRoot;\n    console.log(`DEBUG HOOK: rootdir (using process.cwd()) received = ${process.cwd()}`);\n\n    \/\/ Android \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u30d1\u30b9\u3092\u53d6\u5f97\n    const androidPlatformPath = path.join(rootdir, 'platforms', 'android');\n    if (!fs.existsSync(androidPlatformPath)) {\n        console.error('Android platform not found at:', androidPlatformPath);\n        throw new Error('Android platform directory does not exist. Please add the Android platform first.');\n    }\n\n    \/\/ build.gradle \u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\n    const buildGradlePath = path.join(androidPlatformPath, 'app', 'build.gradle');\n    \/\/ project.properties \u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\n    const projectPropertiesPath = path.join(androidPlatformPath, 'project.properties');\n    \/\/ gradle.properties \u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\n    const gradlePropertiesPath = path.join(androidPlatformPath, 'gradle.properties');\n\n    console.log(`DEBUG HOOK: androidPlatformPath = ${androidPlatformPath}`);\n    console.log(`DEBUG HOOK: buildGradlePath = ${buildGradlePath}`);\n    console.log(`DEBUG HOOK: projectPropertiesPath = ${projectPropertiesPath}`);\n    console.log(`DEBUG HOOK: gradlePropertiesPath = ${gradlePropertiesPath}`);\n\n\n    \/\/ === 1. build.gradle \u306e\u4fee\u6b63 ===\n    \/\/ Core Library Desugaring \u306e\u6709\u52b9\u5316 (compileOptions \u3068 dependencies)\n    try {\n        let buildGradleContent = fs.readFileSync(buildGradlePath, 'utf8');\n\n        \/\/ compileOptions \u306e\u8ffd\u52a0\n        const compileOptionsBlock = `\n    compileOptions {\n        sourceCompatibility JavaVersion.VERSION_1_8\n        targetCompatibility JavaVersion.VERSION_1_8\n    }`;\n        if (!buildGradleContent.includes('sourceCompatibility JavaVersion.VERSION_1_8')) {\n            const androidBlockRegex = \/(android\\s*\\{&#91;^}]*?)(defaultConfig\\s*\\{)\/;\n            if (buildGradleContent.match(androidBlockRegex)) {\n                buildGradleContent = buildGradleContent.replace(\n                    androidBlockRegex,\n                    `$1\\n${compileOptionsBlock}\\n    $2`\n                );\n                console.log('Added compileOptions for desugaring.');\n            } else {\n                console.warn('Could not find \"android { defaultConfig {\" block. Skipping compileOptions modification.');\n            }\n        } else {\n            console.log('compileOptions for desugaring already exists. Skipping.');\n        }\n\n        \/\/ desugar_jdk_libs \u306e\u8ffd\u52a0\n        const desugarDependency = `    implementation 'com.android.tools:desugar_jdk_libs:2.1.5'`; \/\/ \u6700\u65b0\u306e\u5b89\u5b9a\u7248\u3092\u6307\u5b9a\n        const dependenciesEndMarker = '    \/\/ SUB-PROJECT DEPENDENCIES END';\n        if (!buildGradleContent.includes(desugarDependency)) {\n            if (buildGradleContent.includes(dependenciesEndMarker)) {\n                buildGradleContent = buildGradleContent.replace(\n                    dependenciesEndMarker,\n                    `${desugarDependency}\\n${dependenciesEndMarker}`\n                );\n                console.log('Added\/Updated desugar_jdk_libs dependency after SUB-PROJECT DEPENDENCIES END.');\n            } else {\n                \/\/ \u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\uff1a dependencies \u30d6\u30ed\u30c3\u30af\u306e\u6700\u5f8c\u306b\u76f4\u63a5\u8ffd\u52a0\n                const dependenciesBlockRegex = \/(dependencies\\s*\\{&#91;^}]*)\\}\/;\n                if (buildGradleContent.match(dependenciesBlockRegex)) {\n                    buildGradleContent = buildGradleContent.replace(\n                        dependenciesBlockRegex,\n                        `$1\\n    ${desugarDependency}\\n}`\n                    );\n                    console.log('Added desugar_jdk_libs dependency to dependencies block.');\n                } else {\n                    console.error('Could not find dependencies block. Skipping desugar_jdk_libs dependency modification.');\n                }\n            }\n        } else {\n            console.log('desugar_jdk_libs dependency already exists. Skipping.');\n        }\n\n        \/\/ WorkManager dependency resolution strategy \u3092\u8ffd\u52a0\n        \/\/ Android S+ (API 31+) \u3067\u306e PendingIntent \u306e IMMUTABLE\/MUTABLE \u30d5\u30e9\u30b0\u8981\u4ef6\u306b\u5bfe\u5fdc\n        \/\/ Google Mobile Ads SDK \u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3082\u5f37\u5236\u3059\u308b\n        const resolutionStrategyBlock = `\nconfigurations.all {\n    resolutionStrategy {\n        force 'androidx.work:work-runtime:2.8.1' \/\/ WorkManager 2.7.0+ \u306f FLAG_IMMUTABLE \u3092\u30b5\u30dd\u30fc\u30c8\n        \/\/ NEW ADDITION: Force Google Mobile Ads SDK to a newer version (e.g., 23.1.0)\n        force 'com.google.android.gms:play-services-ads:23.1.0' \n        force 'com.google.android.gms:play-services-ads-lite:23.1.0'\n    }\n}\n`;\n        const existingResolutionStrategyRegex = \/configurations\\.all\\s*\\{\\s*resolutionStrategy\\s*\\{&#91;^}]*\\}\\s*\\}\/s;\n        if (!buildGradleContent.match(existingResolutionStrategyRegex)) {\n            const topLevelGradleBlock = \/apply plugin: 'com.android.application'\/; \/\/ \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d7\u30e9\u30b0\u30a4\u30f3\u9069\u7528\u5f8c\u304c\u9069\u5207\n            if (buildGradleContent.match(topLevelGradleBlock)) {\n                buildGradleContent = buildGradleContent.replace(\n                    topLevelGradleBlock,\n                    `$&amp;\\n\\n${resolutionStrategyBlock}`\n                );\n                console.log('Added WorkManager and GMA SDK resolution strategy to build.gradle.');\n            } else {\n                console.warn('Could not find \"apply plugin: \\'com.android.application\\'\" in build.gradle. Appending WorkManager and GMA SDK resolution strategy at the end.');\n                buildGradleContent += resolutionStrategyBlock;\n            }\n        } else {\n            console.log('WorkManager and GMA SDK resolution strategy already exists. Skipping.');\n            \/\/ \u65e2\u5b58\u306e\u30d6\u30ed\u30c3\u30af\u5185\u306b\u65b0\u3057\u3044 force \u30eb\u30fc\u30eb\u3092\u8ffd\u52a0\u3059\u308b\u30ed\u30b8\u30c3\u30af (\u3088\u308a\u5805\u7262\u306a\u5b9f\u88c5)\n            if (!buildGradleContent.includes(\"force 'com.google.android.gms:play-services-ads:23.1.0'\")) {\n                const resolutionStrategyEnd = \/resolutionStrategy\\s*\\{&#91;^}]*\\}\/;\n                buildGradleContent = buildGradleContent.replace(\n                    resolutionStrategyEnd,\n                    `resolutionStrategy {\\n        force 'androidx.work:work-runtime:2.8.1'\\n        force 'com.google.android.gms:play-services-ads:23.1.0'\\n        force 'com.google.android.gms:play-services-ads-lite:23.1.0'\\n    }`\n                );\n                console.log('Updated existing resolution strategy with GMA SDK versions.');\n            }\n        }\n\n\n        fs.writeFileSync(buildGradlePath, buildGradleContent, 'utf8');\n        console.log('Core Library Desugaring successfully enabled in build.gradle.');\n    } catch (err) {\n        console.error('Failed to modify build.gradle:', err);\n        throw err;\n    }\n\n    \/\/ === 2. project.properties \u306e\u4fee\u6b63 ===\n    \/\/ Java compatibility properties \u306e\u8ffd\u52a0\n    try {\n        console.log('Adding Java compatibility properties to project.properties...');\n        let projectPropertiesContent = fs.readFileSync(projectPropertiesPath, 'utf8');\n        const javaTargetProperty = 'cordova.gradle.target.jdk=1.8';\n        const jvmTargetProperty = 'cordova.gradle.jvm.target=1.8';\n\n        let modified = false;\n        if (!projectPropertiesContent.includes(javaTargetProperty)) {\n            projectPropertiesContent += `\\n${javaTargetProperty}`;\n            modified = true;\n        } else {\n            console.log('cordova.gradle.target.jdk already exists in project.properties. Skipping.');\n        }\n\n        if (!projectPropertiesContent.includes(jvmTargetProperty)) {\n            projectPropertiesContent += `\\n${jvmTargetProperty}`;\n            modified = true;\n        } else {\n            console.log('cordova.gradle.jvm.target already exists in project.properties. Skipping.');\n        }\n\n        if (modified) {\n            fs.writeFileSync(projectPropertiesPath, projectPropertiesContent, 'utf8');\n            console.log('Java compatibility properties updated in project.properties.');\n        } else {\n            console.log('Java compatibility properties are up-to-date in project.properties. Skipping write.');\n        }\n    } catch (err) {\n        console.error('Failed to modify project.properties:', err);\n        throw err;\n    }\n\n    \/\/ === 3. gradle.properties \u306e\u4fee\u6b63 ===\n    \/\/ D8 desugaring \u3068 warning suppression \u306e\u8ffd\u52a0\n    try {\n        console.log('Adding D8 desugaring and warning suppression to gradle.properties...');\n        let gradlePropertiesContent = fs.readFileSync(gradlePropertiesPath, 'utf8');\n        const d8ArtifactTransform = 'android.enableDexingArtifactTransform=true';\n        const d8Desugaring = 'android.enableD8.desugaring=true';\n        const suppressSdkWarning = 'android.suppressUnsupportedCompileSdk=35'; \/\/ targetSdkVersion \u306b\u5408\u308f\u305b\u308b\n        const nonTransitiveRClass = 'android.nonTransitiveRClass=false'; \/\/ R.java \u306e\u53c2\u7167\u3092\u7c21\u7d20\u5316\n\n        let modified = false;\n\n        if (!gradlePropertiesContent.includes(d8ArtifactTransform)) {\n            gradlePropertiesContent += `\\n${d8ArtifactTransform}`;\n            modified = true;\n        } else {\n            console.log('android.enableDexingArtifactTransform already exists in gradle.properties. Skipping.');\n        }\n\n        if (!gradlePropertiesContent.includes(d8Desugaring)) {\n            gradlePropertiesContent += `\\n${d8Desugaring}`;\n            modified = true;\n        } else {\n            console.log('android.enableD8.desugaring already exists in gradle.properties. Skipping.');\n        }\n\n        if (!gradlePropertiesContent.includes(suppressSdkWarning)) {\n            gradlePropertiesContent += `\\n${suppressSdkWarning}`;\n            modified = true;\n        } else {\n            console.log('android.suppressUnsupportedCompileSdk already exists in gradle.properties. Skipping.');\n        }\n\n        if (!gradlePropertiesContent.includes(nonTransitiveRClass)) {\n            gradlePropertiesContent += `\\n${nonTransitiveRClass}`;\n            modified = true;\n        } else {\n            console.log('android.nonTransitiveRClass already exists in gradle.properties. Skipping.');\n        }\n\n        if (modified) {\n            fs.writeFileSync(gradlePropertiesPath, gradlePropertiesContent, 'utf8');\n            console.log('Gradle properties updated.');\n        } else {\n            console.log('Gradle properties are up-to-date. Skipping write.');\n        }\n\n    } catch (err) {\n        console.error('Failed to modify gradle.properties:', err);\n        throw err;\n    }\n\n    console.log('Enable Core Library Desugaring for Android hook finished.');\n};\n<\/code><\/pre>\n\n\n\n<p>\u30c7\u30b7\u30e5\u30ac\u30fc\u30d5\u30a1\u30a4\u30eb\u304c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a9\u30eb\u30c0\u306ehooks\u3068\u3044\u3046\u3068\u3053\u308d\u306b\u3042\u308aafterprepare\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u306e\u4e2d\u306b\u30c7\u30b7\u30e5\u30ac\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u914d\u7f6e\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u3051\u308c\u3070\u3001JDK17\u3068Gradle8.9\u3067\u306e\u30d3\u30eb\u30c9\u306e\u6210\u529f\u7387\u304c\u683c\u6bb5\u306b\u9055\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u30b5\u30a4\u30c8\u306f\u30b3\u30d4\u30fc\u30ac\u30fc\u30c9\u3084\u53f3\u30af\u30ea\u30c3\u30af\u7981\u6b62\u3092\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u5199\u7d4c\u3059\u308b\u3088\u308a\u3082\u3001Gemini\u306bJDK17\u3068Gradle8.9\u3067\u306e\u30d3\u30eb\u30c9\u304cFAILDE\u3057\u3066\u3057\u307e\u3046\u3068\u3044\u3046\u65e8\u306e\u30d7\u30ed\u30f3\u30d7\u30c8\u3068\u30d3\u30eb\u30c9\u5931\u6557\u3057\u305f\u6642\u306e\u30a8\u30e9\u30fc\u3092\u30b3\u30d4\u30da\u3059\u308b\u3068\u3001\u30c7\u30b7\u30e5\u30ac\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3068\u3044\u3046\u6d41\u308c\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Gemini\u306bJDK17\u3068Gradle8.9\u3067\u306e\u30d3\u30eb\u30c9\u304cFAILDE\u3057\u3066\u3057\u307e\u3046\u3068\u3044\u3046\u65e8\u306e\u30d7\u30ed\u30f3\u30d7\u30c8\u3067\u6307\u793a\u3092\u51fa\u3057\u3066\u3082\u306a\u304b\u306a\u304b\u30c7\u30b7\u30e5\u30ac\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u304f\u308c\u306a\u3044\u5834\u5408\u306f\u3001\u8ffd\u52a0\u306e\u30d7\u30ed\u30f3\u30d7\u30c8\u3067\u3001\u30c7\u30b7\u30e5\u30ac\u30fc\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u307b\u3057\u3044\u3068\u3044\u3046\u3088\u3046\u306a\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u8ffd\u52a0\u3059\u308b\u3068\u826f\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u3053\u3053\u307e\u3067\u304c\u3001JDK17\u3068Gradle8.9\u3067\u306e\u30d3\u30eb\u30c9\u306b\u5fc5\u8981\u306aPC\u306e\u5185\u90e8\u30b9\u30da\u30c3\u30af\u3067\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u3053\u3053\u304b\u3089\u306f\u3001admob-plus-cordova@2.0.0alpha19\u304c\u52d5\u4f5c\u3059\u308b\u3088\u3046\u306b\u3059\u308b\u305f\u3081\u306e\u89e3\u8aac\u3092\u884c\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"537\" src=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/b22f5729d58a3364eb67c533b912bc7f-1024x537.png\" alt=\"\" class=\"wp-image-568\" srcset=\"https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/b22f5729d58a3364eb67c533b912bc7f-1024x537.png 1024w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/b22f5729d58a3364eb67c533b912bc7f-300x157.png 300w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/b22f5729d58a3364eb67c533b912bc7f-768x403.png 768w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/b22f5729d58a3364eb67c533b912bc7f-1536x806.png 1536w, https:\/\/kurotsushirou.com\/techinfo\/wp-content\/uploads\/2025\/06\/b22f5729d58a3364eb67c533b912bc7f.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>hooks\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u52d5\u304b\u3059\u305f\u3081\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3068Kotlin\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u52d5\u304b\u3059\u30d1\u30e9\u30e1\u30fc\u30bf<\/p>\n\n\n\n<p>\u3042\u3068\u306f\u3001<a href=\"https:\/\/www.npmjs.com\/package\/admob-plus-cordova\">npm<\/a>\u306b\u66f8\u304b\u308c\u3066\u3042\u308b\u3054\u304f\u3054\u304f\u30b7\u30f3\u30d7\u30eb\u306ajs\u3092\u8ffd\u52a0\u3059\u308b\u3060\u3051\u3067\u3001\u5e83\u544a\u304c\u5b9f\u88c5\u3055\u308c\u308b\u3068\u601d\u308f\u308c\u307e\u3059\u3002\u4eba\u305d\u308c\u305e\u308c\u9055\u3046\u30a8\u30e9\u30fc\u306b\u906d\u9047\u3059\u308b\u304b\u3082\u2026\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u30d3\u30eb\u30c9\u304c\u4e0a\u624b\u304f\u884c\u3063\u305f\u3089\u3001\u5e83\u544a\u306e\u5b9f\u88c5\u306b\u8fd1\u3065\u3044\u305f\u8a3c\u62e0\u3067\u3059\u3002<\/p>\n\n\n\n<p>Gemini\u304c\u8272\u3005\u3068JavaScript\u3092\u6539\u5909\u3057\u3066\u304f\u308c\u307e\u3059\u304c\u3001admob-plus-cordova\u306fKotlin\u3067\u4f5c\u6210\u3055\u308c\u305f\u30d7\u30e9\u30b0\u30a4\u30f3\u306a\u306e\u3067\u3001Kotlin\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u5fc5\u8981\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u3002Kotlin\u306e\u30d3\u30eb\u30c9\u3092\u901a\u3057\u3066\u3084\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u5e83\u544a\u306e\u5b9f\u88c5\u304c\u975e\u5e38\u306b\u30b7\u30f3\u30d7\u30eb\u306b\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u8ffd\u8a18\u306a\u306e\u3067\u3059\u304c\u3001admob-plus-cordova\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e2d\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u6642\u3001<\/p>\n\n\n\n<p>cordova plugin add admob-plus-cordova &#8211;variable APP_ID=&#8221;ca-app-pub-\u3042\u306a\u305f\u306e\u5b9f\u969b\u306e\u30a2\u30d7\u30eaID&#8221;\u306e\u8a18\u8ff0\u304c\u5fc5\u8981\u306b\u306a\u3063\u3066\u304d\u307e\u3059\u306e\u3067\u304a\u6c17\u3092\u4ed8\u3051\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>admob-plus-cordova\u3092\u52d5\u304b\u3059\u305f\u3081\u306e\u30b7\u30f3\u30d7\u30eb\u306a\u30b3\u30fc\u30c9\u306b\u3064\u3044\u3066\u306f<a href=\"https:\/\/admob-plus.github.io\/docs\/cordova\/installation\">\u3053\u3053\u3092<\/a>\u53c2\u7167\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u3067\u306f\u3054\u5065\u95d8\u3092\u7948\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7b46\u8005\u306e\u74b0\u5883\u3067\u3001Android\u7248\u306e\u30a2\u30d7\u30ea\u3092\u69cb\u7bc9\u3059\u308b\u969b\u306bCordova\u3092\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3068\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\u3001JDK17\u3068Gradle8.9\u3067\u30a2\u30d7\u30ea\u3092\u30d3\u30eb\u30c9\u3057\u3066\u3044\u307e\u3059\u3002 AI\u306b\u52a9\u529b\u3092\u5f97\u306a\u304c\u3089\u596e\u95d8\u3057\u305f\u8a18\u4e8b\u3092\u307e\u3068\u3081\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u306e\u3067\u3001<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[3,4,87,88,8,89],"tags":[74,84,75,86,85],"class_list":["post-550","post","type-post","status-publish","format-standard","hentry","category-css3","category-html5","category-javascript","category-88","category-8","category-89","tag-cordova","tag-gradle8-9","tag-jdk17","tag-ktolin","tag-node-js22lts"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=\/wp\/v2\/posts\/550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=550"}],"version-history":[{"count":5,"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=\/wp\/v2\/posts\/550\/revisions"}],"predecessor-version":[{"id":573,"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=\/wp\/v2\/posts\/550\/revisions\/573"}],"wp:attachment":[{"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kurotsushirou.com\/techinfo\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}