16: 2018-10-04 (木) 03:35:37 njf[6] [7] [8] | 現: 2018-10-08 (月) 03:00:42 njf[6] [9] [10] | ||
---|---|---|---|
Line 120: | Line 120: | ||
compileSdkVersion 24 | compileSdkVersion 24 | ||
buildToolsVersion "24.0.0" | buildToolsVersion "24.0.0" | ||
+ | |||
defaultConfig { | defaultConfig { | ||
applicationId "jp.njf.MyGame" | applicationId "jp.njf.MyGame" | ||
minSdkVersion.apiLevel 10 | minSdkVersion.apiLevel 10 | ||
targetSdkVersion.apiLevel 22 | targetSdkVersion.apiLevel 22 | ||
+ | |||
ndk { | ndk { | ||
moduleName "game_shared" | moduleName "game_shared" | ||
} | } | ||
} | } | ||
+ | |||
buildTypes { | buildTypes { | ||
release { | release { | ||
Line 147: | Line 147: | ||
apply plugin: 'com.android.model.library' | apply plugin: 'com.android.model.library' | ||
+ | |||
buildscript { | buildscript { | ||
repositories { | repositories { | ||
jcenter() | jcenter() | ||
} | } | ||
+ | |||
dependencies { | dependencies { | ||
classpath 'com.android.tools.build:gradle:1.3.1' | classpath 'com.android.tools.build:gradle:1.3.1' | ||
} | } | ||
} | } | ||
+ | |||
dependencies { | dependencies { | ||
compile 'com.google.android.gms:play-services-plus:9.+' | compile 'com.google.android.gms:play-services-plus:9.+' | ||
Line 186: | Line 186: | ||
%%このとき、後述のCocos2dxBitmapでのエラーを避けるため、リリースするAPIのバージョンは21以下にするのがおすすめです。%% | %%このとき、後述のCocos2dxBitmapでのエラーを避けるため、リリースするAPIのバージョンは21以下にするのがおすすめです。%% | ||
- | 規約の変更などにより、APIレベルを低くしてリリースするのが難しくなってきているので、以下の方法をおすすめします。 | + | 規約の変更や広告SDKなど外部ライブラリの都合などにより、APIレベルを低くしてリリースするのが難しくなってきているので、ソースをプロジェクト内にコピーしたり、モジュールとして取り込むのをおすすめします。 |
- | ソースをプロジェクト内にコピーしたり、モジュールとして取り込みます。 | ||
%%一方、jarファイルの方が一つjarを作るプロジェクトを作っておくと、そのjarを使い回せるのでいっせいに変更するのはそちらの方が楽です。またコンパイル時間も短くなります。%% | %%一方、jarファイルの方が一つjarを作るプロジェクトを作っておくと、そのjarを使い回せるのでいっせいに変更するのはそちらの方が楽です。またコンパイル時間も短くなります。%% | ||
Line 207: | Line 207: | ||
%%BaseGameUtilsの中のAndroidManifest.xmlにuses-sdkがないために起こるので、ゲーム本体のAndroidManifest.xmlのuses-sdk句をコピーしてBaseGameUtilsのものに貼り付けると解決します。%% | %%BaseGameUtilsの中のAndroidManifest.xmlにuses-sdkがないために起こるので、ゲーム本体のAndroidManifest.xmlのuses-sdk句をコピーしてBaseGameUtilsのものに貼り付けると解決します。%% | ||
- | 現在ではManifestにsdkのバージョンを入れること自体が推奨されていないので、マニフェストから取り除けばOKです。(2018.10.4追記) | + | 現在ではManifestにSDKのバージョンを入れること自体が推奨されていないので、マニフェストからSDKのバージョンを入れてgradleファイルのSDKを上げればOKです。(2018.10.4追記) |
** Cocos2dxBitmapクラスのFloatMathでエラー [#n019b611] | ** Cocos2dxBitmapクラスのFloatMathでエラー [#n019b611] | ||
- | API level 22よりdeprecatedになったので、FloatMathをMathに置きかえてください。%%またはAPI 21以下でリリースしてください。%% 低いAPI levelではリリースできなくなってきているので、書きかえる方が無難です。(2018.10.4追記)。 | + | API level 22よりdeprecatedになったので、FloatMathをMathに置きかえてください。%%またはAPI 21以下でリリースしてください。%% 外部ライブラリのなどの都合により、低いAPI levelではリリースしづらくなってきているので、書きかえる方が無難です。(2018.10.4追記)。 |
**HttpClientのエラー [#k5f1e689] | **HttpClientのエラー [#k5f1e689] | ||
Line 230: | Line 230: | ||
古いBaseGameUtilsを使っていると、Google Play Serviceを新しくしたときにエラーとなります。BaseGameUtils関連のjavaファイルとManifest、resフォルダなどを新しい物に入れ替えるとうまくいきます。 | 古いBaseGameUtilsを使っていると、Google Play Serviceを新しくしたときにエラーとなります。BaseGameUtils関連のjavaファイルとManifest、resフォルダなどを新しい物に入れ替えるとうまくいきます。 | ||
+ | |||
+ | **android.permission.READ_PHONE_STATEのパーミッションが付け加わる [#ga4337af] | ||
+ | |||
+ | android.permission.READ_PHONE_STATEのパーミッションがあるから、プライバシーポリシー追加しないといけない、とGoogle Playへアップロード時に言われることがあります。 | ||
+ | |||
+ | これは、gradleファイルでminSdkVersionやtargetSdkVersionを指定しないと、デフォルトで1が適用されるため、古いAndroid端末での互換性を保つため勝手にパーミッションが付け加わるためらしいです。 | ||
+ | |||
+ | よって、このエラーが発生したときは、全てのgradleファイルにSDKのバージョンが正しく定義されているかをチェックしてください。ライブラリのどれかで入れ忘れている可能性があります。 | ||
*Google Play Serviceについての注意 [#ye37b112] | *Google Play Serviceについての注意 [#ye37b112] |
(This host) = https://njf.jp