Error:Cannot get property 'cd' on null object
とあるソースをビルドすると以下のエラーメッセージが出てきた。
Error:Cannot get property 'cd' on null object
Consult IDE log for more details (Help | Show Log)
cd
と言う null オブジェクトがあると言われている。
原因
原因は凡ミス。
cd
を削除する事で修正
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.google.android.gms:play-services:9.8.0'
testCompile 'junit:junit:4.12'
}cd // ← ここ
DexArchiveMergerException: Unable to merge dex
とあるソースをビルドすると以下のエラーメッセージが出てきた。
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
よくわからなかったので詳細を得る為にコンパイルオプションに--stacktrace を付けてビルドし直す。
コンパイルオプションは File -> Setting -> Build, Execution, Deployment -> Compire
にあるCommand-line Options
に記載する。
以下のエラーに変わった。
Information:Gradle tasks [:app:assembleDebug]
Error:java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Error:com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
原因
原因はメソッド数が65k(65536)を超えた為に起きたエラー
の様だ。
DexIndexOverflowException
をググると以下の情報が出てきたので参考にする。
いくつか解決方法があるようだが build.gradle(Module: app) の android {}
に multiDexEnabled true
を追加する事で解決した。
android {
// Enabling multidex support.
multiDexEnabled true
}
Error:Minimum supported Gradle version is...
とあるソースをビルドすると以下のエラーメッセージが出てきた。
Error:Minimum supported Gradle version is 4.1. Current version is 2.14.1. If using the gradle wrapper,
try editing the distributionUrl in C:\AndroidApp\gradle\wrapper\gradle-wrapper.properties to gradle-4.1-all.zip
Consult IDE log for more details (Help | Show Log)
gradle-wrapper.properties(gradle Version) の distributionUrl を以下のように変更する。
変更前
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
変更後
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
変更後にProjectを再起動する。