2017-02-14 20 views
1

私は最近、自分のJAVAバージョンを1.8にアップデートし、アンドロイドスタジオのアップデートとプラグインの更新も行いました。Androidスタジオのアップデート - com.android.databindingの解決に失敗しました

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.0-beta4' 
     classpath 'com.google.gms:google-services:2.0.0-alpha6' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 
:私のプロジェクトレベルのbuild.gradleは、次のようになります

enter image description here

:アップデート後、私は私のプロジェクトのコンパイルに私のモジュールの(つまり、Facebookのモジュール)build.gradleファイルのいずれかでエラーが発生し、次の取得します

また、Symbol 'GradleScriptException'を解決できず、facebookモジュールのbuild.gradleファイルの 'MavenDeployment'シンボルを解決できないようなSymbol not foundエラーがあります。 Facebookのbuil.gradleの完全なコードは次のとおりです。

apply plugin: 'com.android.library' 

repositories { 
    mavenCentral() 
} 

project.group = 'com.facebook.android' 

dependencies { 
    // Facbook Dependancies 
    testCompile 'com.android.support:appcompat-v7:23.0.1' 
    compile 'com.android.support:support-v4:23.0.1' 
    compile 'com.parse.bolts:bolts-android:1.2.1' 
    // Unit Tests 
    testCompile 'junit:junit:4.12' 
    testCompile 'org.robolectric:robolectric:3.0' 
    testCompile 'org.robolectric:shadows-support-v4:3.0' 
    def powerMockVersion = '1.6.1' 
    testCompile "org.powermock:powermock-module-junit4:$powerMockVersion" testCompile "org.powermock:powermock-module-junit4-rule:$powerMockVersion" testCompile "org.powermock:powermock-classloading-xstream:$powerMockVersion" androidTestCompile 'com.google.dexmaker:dexmaker:1.2' 
    testCompile "org.powermock:powermock-api-mockito:$powerMockVersion" androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2' 
    // Connected Tests 
    androidTestCompile 'org.mockito:mockito-core:1.10.19' 
} 

android { 
    compileSdkVersion 23 
    buildToolsVersion '25.0.0' 

    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 19 
     multiDexEnabled true 
    } 

    lintOptions { 
     abortOnError false 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
    dataBinding { 
     enabled = true 
    } 
} 

apply plugin: 'maven' 
apply plugin: 'signing' 

def isSnapshot = version.endsWith('-SNAPSHOT') 
def ossrhUsername = hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : "" 
def ossrhPassword = hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "" 

task setVersion { 
    // The version will be derived from source 
    project.version = null 
    def sdkVersionFile = file('src/main/java/com/facebook/FacebookSdkVersion.java') 
    sdkVersionFile.eachLine{ 
     def matcher = (it =~ /(?:.*BUILD = \")(.*)(?:\".*)/) 
     if (matcher.matches()) { 
      project.version = matcher[0][1] 
      return 
     } 
    } 
    if (project.version.is('unspecified')) { 
     throw new GradleScriptException('Version could not be found.', null) 
    } 
} 

uploadArchives { 
    repositories.mavenDeployer { 
     beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } 

     repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { 
      authentication(userName: ossrhUsername, password: ossrhPassword) 
     } 

     snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { 
      authentication(userName: ossrhUsername, password: ossrhPassword) 
     } 

     pom.project { 
      name 'Facebook-Android-SDK' 
      artifactId = 'facebook-android-sdk' 
      packaging 'aar' 
      description 'Facebook Android SDK' 
      url 'https://github.com/facebook/facebook-android-sdk' 

      scm { 
       connection 'scm:[email protected]:facebook/facebook-android-sdk.git' 
       developerConnection 'scm:[email protected]:facebook/facebook-android-sdk.git' 
       url 'https://github.com/facebook/facebook-android-sdk' 
      } 

      licenses { 
       license { 
        name 'Facebook Platform License' 
        url 'https://github.com/facebook/facebook-android-sdk/blob/master/LICENSE.txt' 
        distribution 'repo' 
       } 
      } 

      developers { 
       developer { 
        id 'facebook' 
        name 'Facebook' 
       } 
      } 
     } 
    } 
} 

uploadArchives.dependsOn(setVersion) 

signing { 
    required { !isSnapshot && gradle.taskGraph.hasTask("uploadArchives") } 
    sign configurations.archives 
} 

task androidJavadocs(type: Javadoc) { 
    source = android.sourceSets.main.java.srcDirs 
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) 
    // JDK 1.8 is more strict then 1.7. Have JDK 1.8 behave like 1.7 for javadoc generation 
    if (org.gradle.internal.jvm.Jvm.current().getJavaVersion() == JavaVersion.VERSION_1_8) { 
     options.addStringOption('Xdoclint:none', '-quiet') 
    } 
} 

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { 
    classifier = 'javadoc' 
    from androidJavadocs.destinationDir 
} 

task androidSourcesJar(type: Jar) { 
    classifier = 'sources' 
    from android.sourceSets.main.java.sourceFiles 
} 

artifacts { 
    archives androidSourcesJar 
    archives androidJavadocsJar 
} 

afterEvaluate { 
    androidJavadocs.classpath += project.android.libraryVariants.toList().first().javaCompile.classpath 
} 

は何もしませんUpgrade plugin and sync projectをクリックします。

さまざまなソースから示唆されているように、「キャッシュを無効にして再起動」を試みましたが、機能しませんでした。私は既に私のプロジェクトbuild.gradleにgradleプラグインの最新バージョンについて言及しました。

私はGradle DSL Method not found: testCompile()を通過しましたが、問題は解決しません。

このコンパイルエラーを削除するにはどうすればよいですか?

TIA

EDIT 1: SM4によって示唆されているように私には変更を加え、そしてこのDSL方法が見つかりませんエラーがオフに行きましたが、今、それは次のエラーでコンパイルに失敗します。

Compile error

答えて

1
def powerMockVersion = '1.6.1' 
testCompile "org.powermock:powermock-module-junit4:$powerMockVersion" testCompile "org.powermock:powermock-module-junit4-rule:$powerMockVersion" testCompile "org.powermock:powermock-classloading-xstream:$powerMockVersion" androidTestCompile 'com.google.dexmaker:dexmaker:1.2' 
testCompile "org.powermock:powermock-api-mockito:$powerMockVersion" androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2' 
// Connected Tests 
androidTestCompile 'org.mockito:mockito-core:1.10.19' 

testCompileは、実際にはメソッドへの呼び出しです。 1行に複数のtestCompileがあるため、多くのパラメータを持つメソッドへの呼び出しとして扱われています。そのような方法は存在しない。

は、行ごとに1つだけの定義を維持し、それが動作するはずです:

testCompile "org.powermock:powermock-module-junit4:$powerMockVersion" 
testCompile "org.powermock:powermock-module-junit4-rule:$powerMockVersion" 
testCompile "org.powermock:powermock-classloading-xstream:$powerMockVersion" 
androidTestCompile 'com.google.dexmaker:dexmaker:1.2' 
testCompile "org.powermock:powermock-api-mockito:$powerMockVersion" 
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2' 
+0

Thnx。出来た。しかし、別のエラーが発生しました。 @ sm4問題の編集を見てください。 –

0

の@ SM4で述べた修正を試みた後、私は私が述べた最初の問題を解決しますが、それは質問のEDIT 1項に書かれた別の問題を作成しました。

私はthis answerに続き、最後に私のプロジェクトはエラーなくコンパイルされました。

関連する問題