症状
「Playストア」アプリの起動を試みると繰り返し以下のアラートダイアログを表示して異常終了する。
問題が発生したためGoogle Play ストアを終了します
1 2 3 4 5 6 7 8 9 10 11 12 |
InetAddress getBroadcastAddress() throws IOException { WifiManager wifi = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE); DhcpInfo dhcp = wifi.getDhcpInfo(); // handle null somehow int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask; byte[] quads = new byte[4]; for (int k = 0; k < 4; k++) quads[k] = (byte) ((broadcast >> k * 8) & 0xFF); return InetAddress.getByAddress(quads); } |
Android Studioでのビルドにおいて以下のエラーが発生する
1 2 3 4 |
Error:A problem occurred configuring root project 'xxxx'. > Could not find support-v4.jar (com.android.support:support-v4:24.0.0). Searched in the following locations: https://jcenter.bintray.com/com/android/support/support-v4/24.0.0/support-v4-24.0.0.jar |
1 2 3 4 5 |
To run dex in process, the Gradle daemon needs a larger heap. It currently has 1024 MB. For faster builds, increase the maximum heap size for the Gradle daemon to at least 1536 MB. To do this set org.gradle.jvmargs=-Xmx1536M in the project gradle.properties. For more information see https://docs.gradle.org/current/userguide/build_environment.html |
APKの作成中に下記のエラーで停止する。
1 2 |
Error:Execution failed for task ':transformResourcesWithMergeJavaResForDebug'. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE |
Gradleによるビルド中に下記のエラーで停止する。
1 2 3 4 |
Error:Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded Error:1 error; aborting Error:Execution failed for task ':transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException |
build.gradleに以下の記述を追加してJavaのヒープサイズを拡張する。
1 2 3 4 5 6 |
android { ... dexOptions { javaMaxHeapSize "4g" } } |
compileSdkVersion ‘android-24’ requires JDK 1.8 or later to compile が発生しビルドに失敗する。
API 23まではJDK 1.7でコンパイル可能であったが、API 24以降はJDK 1.8が必須となった。
ローカル環境にJDK 1.8がインストール済みであっても、Android Studioは自動的(暗黙的)にJDK 1.8に参照を切り替えることはしない。JDK 1.8を参照するようにAndroid Studioの設定を変更する必要がある。
Android Studio の Component Installer にて “unzipping…” のまま処理が先に進まない。
Android Studio を終了させて、コマンドラインから直接 "Android SDK Manager" を立ち上げてインストールとアップデートを実行する。
1 |
$ android sdk |
Android Studio 2.0 起動直後に "System Health" IDEA-146691 が表示される。
脆弱性のあるJDKバージョンを使っていることの警告
JDK 1.8.0_60 〜 1.8.0_76 は drag and drop 問題があるため、JDKのバージョンアップを勧めている。
Android.mkに以下の行を追加する
1 |
LOCAL_LDLIBS := -llog |
1 |
#include <android/log.h> |
1 |
__android_log_write(ANDROID_LOG_DEBUG, "MY_APP", "DEBUG POINT 1"); |
1 |
__android_log_print(ANDROID_LOG_DEBUG, "MY_APP", "DEBUG VALUE %d", i); |
1 |
$ ~/ndk/android-ndk-rxx/ndk-build clean |
1 |
$ ~/ndk/android-ndk-rxx/ndk-build NDK_BUILD=1 |
"logcat" でみる。
View ⇒ Tool Windows ⇒ Android Monitor ⌘ + 6