2

Android Studio 0.3.0 と、プレーンな古い Java ライブラリ プロジェクト、2 つの Android ライブラリ プロジェクト、および 3 つの Android アプリを含むプロジェクト フォルダーに問題があります。すべてGradleで構築されています。

問題は、Android Studio への最初のインポートが正常に機能する (Android Studio の を使用しImport Project...てからファイルを選択するsettings.gradle) ことですが、Gradle サイドバーの更新ボタンを押すと、「The modules below are not backed by Gradle already. ide プロジェクトからも削除するものを確認してください:」と表示され、削除するすべてのモジュールが一覧表示されます。ターミナルからすべてが正常にビルドされます。

の出力gradle projectsは(編集された名前で)です:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'root'
+--- Project ':android-lib1'
+--- Project ':android-app1'
+--- Project ':android-app2'
+--- Project ':android-app3'
+--- Project ':android-lib2'
\--- Project ':java-lib'

ルートフォルダーには、次のものがありますsettings.gradle

include ':java-lib'
include ':android-lib1'
include ':android-lib2'
include ':android-app1'
include ':android-app2'
include ':android-app3'

build.gradleのルートフォルダ:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}

allprojects {
    repositories {
        mavenCentral()
        ivy {
            name 'repo'
            artifactPattern 'http://repo.example.com:8081/artifactory/libs-release-local/[organisation]/[module]/[revision]/[type]s/[artifact].[ext]'
            credentials {
                username 'example'
                password 'example'
            }
        }
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.8'
}

build.gradlejava-lib の場合:

apply plugin: 'java'
apply plugin: 'eclipse'

compileJava.options.encoding = 'UTF-8'

group 'example'
version '0.1.0'
status 'release'

sourceCompatibility = '1.6'
targetCompatibility = '1.6'

dependencies {
    compile 'com.google.protobuf:protobuf-java:2.5.0'
    compile 'com.google.guava:guava:15.0'
    compile 'org.slf4j:slf4j-api:1.7.5'

    testCompile group: 'junit', name: 'junit', version: '4.+'
}

uploadArchives {
    repositories {
        add project.repositories.repo
    }
}

build.gradle2 つの Android ライブラリの場合 (依存関係とバージョン番号を除いて、これらは同じです。

apply plugin: 'android-library'

dependencies {
    compile project(':java-lib')
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"

    defaultConfig {
        versionCode 1
        versionName '0.1.0'
        minSdkVersion 9
        targetSdkVersion 18
    }
}

最後にbuild.gradle、Android アプリの場合 (これもほぼ同じです):

apply plugin: 'android'

dependencies {
    compile project(':android-lib1')
    compile project(':android-lib2')
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"

    defaultConfig {
        versionCode 1
        versionName '0.1.0'
    }

    signingConfigs {
        release
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

if (project.hasProperty('storeFile')) {
    android.signingConfigs.release.storeFile = file(storeFile)
}
if (project.hasProperty('storePassword')) {
    android.signingConfigs.release.storePassword = storePassword
}
if (project.hasProperty('keyAlias')) {
    android.signingConfigs.release.keyAlias = keyAlias
}
if (project.hasProperty('keyPassword')) {
    android.signingConfigs.release.keyPassword = keyPassword
}

おそらく、Android Studio 0.3.0 のバグでしょうか? 以前のバージョンでは経験しませんでしたが、ビルド ファイルだけのものではないことを確認したいと思います。

読んでくれてありがとう!

4

2 に答える 2

0

また、これまたは非常によく似たエラーが発生しました (更新したかどうかはわかりません) code.google.com にバグを投稿したのを見て、それが彼らのバグであることに同意します。私の回避策は、「Gradle にバックアップされていません」というメッセージをキャンセルしてから、コマンドラインから gradle build を実行することでした。その後、すべてが機能しました。

于 2013-11-08T22:16:38.407 に答える