読者です 読者をやめる 読者になる 読者になる

Log.i53

Themidaのアンパックを目指すブログ改め使い物になるえんじにゃを目指すブログ

Android Studio 2.0にアップデートしたら「Error:Cannot configure the 'publishing' extension after it has been accessed.」というエラーが出て数時間無駄にした話

Android

忌々しきエラー:
Error:Cannot configure the 'publishing' extension after it has been accessed.

いくら調べても調べても解決できないので新しくプロジェクトを作り直してライブラリの追加〜からやり直していったらVolleyライブラリを追加したところで当該エラーが発生していることが判明した。

とりあえずの解決策としてはvolleyのbuild.gradle内の「apply from: 'bintray.gradle'」をコメントアウトすると良いらしく、自分もコメントアウト後は問題なく動作した。しかし原理は不明である(おそらく根本の原因はbintray.gradle内のpublishing〜の記述周りだと思うので時間があったら調べてみたい...)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'
    }
}

apply plugin: 'com.android.library'

repositories {
    jcenter()
}

android {
    compileSdkVersion 22
    buildToolsVersion = '22.0.1'
}

apply from: 'rules.gradle'
// apply from: 'bintray.gradle' ← コメントアウト!!!

スタックオーバーフローに圧倒的感謝:)
stackoverflow.com

2016/04/14 追記

git submodule addでライブラリを追加していたためにトラブルが発生したらしい…mavenリポジトリにアップロードされているライブラリはdependenciesに記述する方法でライブラリ追加する方が簡単だしトラブルにもなりにくいだろう…

解決までの手順

  1. git submodule deinit -f volleyのパス
  2. git rm -f volleyのパス
  3. build.gradleに「compile 'com.mcxiaoke.volley:library:1.0.19'」を追加
  4. 設定のVersion ControlからVolleyを削除(右上のポップアップからConfigureで移動できる)
  5. ビルドからClean Projectを行った後でRun!
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:design:23.2.1'
    // compile project(':modules:volley')              // ← 削除
    compile 'com.mcxiaoke.volley:library:1.0.19' // ← 追加
}