相关疑难解决方法(0)

Gradle Implementation vs API配置

我正在试图弄清楚构建我的依赖项时有什么区别apiimplementation配置.
在文档中,它说implementation有更好的构建时间,但是,在类似的问题中看到这个 评论我想知道它是否属实.
由于我不是gradle的专家,我希望有人可以提供帮助.我已经阅读了文档,但我想知道一个易于理解的解释.

implementation dependencies android gradle

183
推荐指数
8
解决办法
5万
查看次数

什么是Gradle工件依赖图命令?

我在Gradle文档中阅读了这条评论:

To deal with problems due to version conflicts, reports with dependency graphs
are also very helpful. Such reports are another feature of dependency management.
Run Code Online (Sandbox Code Playgroud)

我带了一些罐子,但我需要弄清楚它来自哪里.通常我会全局排除它,但我需要一些关于层次结构的信息.我如何从Ivy和Maven获得这些信息?

更不用说有人将Hibernate jar(很多)带入我的jar列表中,我真的想知道是谁,因为我没有使用Hibernate并试图消除这种依赖.

gradle

120
推荐指数
6
解决办法
10万
查看次数

Android:更新到新版本的gradle后出现"Manifest merger failed"错误

在接受将项目更新为新版本的gradle后,我收到此错误:

Error:Execution failed for task ':app:processDebugManifest'.
Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0-alpha1) from [com.android.support:cardview-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38
    is also present at [com.android.support:design:25.3.1] AndroidManifest.xml:27:9-31 value=(25.3.1).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:22:5-24:41 to override.
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?这是我的应用程序build.gradle文件:

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.sample.bookReader"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    ...
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:multidex:+'
    compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
    compile 'com.android.support:cardview-v7:26.0.0-alpha1'
    compile 'com.android.support:design:25+'
    compile 'com.jakewharton:butterknife:8.2.1'
    apt 'com.jakewharton:butterknife-compiler:8.2.1'
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是项目的build.gradle …

android

107
推荐指数
6
解决办法
13万
查看次数

java.lang.NoClassDefFoundError:android/graphics/drawable/Icon

到目前为止,我只为一位使用root手机的用户(SM-G900R7 Android 4.4.2)收到此错误.错误是这样的:

Fatal Exception: java.lang.NoClassDefFoundError: android/graphics/drawable/Icon
       at java.lang.Class.getDeclaredMethods(Class.java)
       at java.lang.Class.getDeclaredMethods(Class.java:656)
       at android.view.ViewDebug.getExportedPropertyMethods(ViewDebug.java:960)
       at android.view.ViewDebug.exportMethods(ViewDebug.java:1047)
       at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:997)
       at android.view.ViewDebug.dumpViewProperties(ViewDebug.java:983)
       at android.view.ViewDebug.dumpView(ViewDebug.java:900)
       at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:870)
       at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
       at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
       at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
       at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
       at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
       at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
       at android.view.ViewDebug.dumpViewHierarchy(ViewDebug.java:867)
       at android.view.ViewDebug.dump(ViewDebug.java:793)
       at android.view.ViewDebug.dispatchCommand(ViewDebug.java:416)
       at android.view.ViewRootImpl$W.executeCommand(ViewRootImpl.java:6258)
       at android.view.IWindow$Stub.onTransact(IWindow.java:65)
       at android.os.Binder.execTransact(Binder.java:404)
       at dalvik.system.NativeStart.run(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)

我从不在我的代码中使用android.graphics.drawable.Icon,所有用法都是来自android.support.v4.graphics.drawable.IconCompat我也从不在我的代码中使用该类...

顺便说一句,我的支持库是 version 26.0.0, my minSdkVersion is 15 targetSdkVersion is 26.

谢谢

android noclassdeffounderror android-support-library

94
推荐指数
3
解决办法
9722
查看次数

更新了 Firebase 依赖项并出现重复的 protobuf 类错误

更新我的 Firebase SDK 之一后出现此错误

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class com.google.protobuf.AbstractMessageLite found in modules jetified-protobuf-javalite-3.11.0.jar (com.google.protobuf:protobuf-javalite:3.11.0) and jetified-protobuf-lite-3.0.1.jar (com.google.protobuf:protobuf-lite:3.0.1)
  Duplicate class com.google.protobuf.AbstractMessageLite$Builder found in modules jetified-protobuf-javalite-3.11.0.jar (com.google.protobuf:protobuf-javalite:3.11.0) and jetified-protobuf-lite-3.0.1.jar (com.google.protobuf:protobuf-lite:3.0.1)
  Duplicate class com.google.protobuf.AbstractMessageLite$Builder$LimitedInputStream found in modules jetified-protobuf-javalite-3.11.0.jar (com.google.protobuf:protobuf-javalite:3.11.0) and jetified-protobuf-lite-3.0.1.jar (com.google.protobuf:protobuf-lite:3.0.1)
  Duplicate class com.google.protobuf.AbstractParser found in modules jetified-protobuf-javalite-3.11.0.jar (com.google.protobuf:protobuf-javalite:3.11.0) and jetified-protobuf-lite-3.0.1.jar (com.google.protobuf:protobuf-lite:3.0.1)
  Duplicate class com.google.protobuf.AbstractProtobufList found in modules jetified-protobuf-javalite-3.11.0.jar (com.google.protobuf:protobuf-javalite:3.11.0) and …
Run Code Online (Sandbox Code Playgroud)

android protocol-buffers firebase

20
推荐指数
1
解决办法
5790
查看次数

Gradle传递依赖性排除不按预期工作.(如何摆脱com.google.guava:guava-jdk5:13.0?)

这是我的build.gradle的片段:

compile 'com.google.api-client:google-api-client:1.19.0'
compile 'com.google.apis:google-api-services-oauth2:v2-rev77-1.19.0'
compile 'com.google.apis:google-api-services-plus:v1-rev155-1.19.0'
compile 'com.google.appengine.tools:appengine-gcs-client:0.4.1'
compile 'com.google.appengine.tools:appengine-mapreduce:0.8'
Run Code Online (Sandbox Code Playgroud)

使用dependencyInsight可以看到导入多个版本的guava:

com.google.guava:guava:15.0 (conflict resolution)

com.google.guava:guava:14.0.1 -> 15.0
+--- com.googlecode.objectify:objectify:4.1.3
|    \--- default
\--- net.eusashead.spring:spring-cache-gae:1.0.0.RELEASE
     \--- default

com.google.guava:guava:[15.0,15.99] -> 15.0
+--- com.google.appengine.tools:appengine-gcs-client:0.4.1
|    +--- default
|    +--- com.google.appengine.tools:appengine-mapreduce:0.8
|    |    \--- default
|    \--- com.google.appengine.tools:appengine-pipeline:0.2.10
|         \--- com.google.appengine.tools:appengine-mapreduce:0.8 (*)
+--- com.google.appengine.tools:appengine-mapreduce:0.8 (*)
\--- com.google.appengine.tools:appengine-pipeline:0.2.10 (*)

com.google.guava:guava-jdk5:13.0
\--- com.google.api-client:google-api-client:1.19.0
     +--- default
     +--- com.google.apis:google-api-services-oauth2:v2-rev77-1.19.0
     |    \--- default
     +--- com.google.apis:google-api-services-plus:v1-rev155-1.19.0
     |    \--- default
     +--- com.google.appengine.tools:appengine-gcs-client:0.4.1
     |    +--- default
     |    +--- com.google.appengine.tools:appengine-mapreduce:0.8
     |    | …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine mapreduce gradle guava

12
推荐指数
4
解决办法
1万
查看次数

Firebase两次发送推送通知

我写了一个非常简单的Android应用程序来测试firebase推送通知,我收到两次通知.

这是清单服务:

<service
        android:name="com.google.firebase.messaging.FirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
    <service
        android:name="com.google.firebase.iid.FirebaseInstanceIdService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
Run Code Online (Sandbox Code Playgroud)

这是应用程序gradle:

    compile 'com.google.android.gms:play-services:9.0.0'
    compile 'com.google.firebase:firebase-core:9.0.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
}
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

这是项目级别的gradle:

classpath 'com.google.gms:google-services:3.0.0'
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-cloud-messaging firebase-notifications

12
推荐指数
2
解决办法
2万
查看次数

Gradle依赖树,(*)是什么意思?

我只是想知道Gradle的依赖树下的(*)是什么意思.我一直在网上搜索,找不到任何答案.

+--- org.apache.httpcomponents:httpclient:4.2.6 -> 4.5 (*)

    |    +--- org.apache.jena:apache-jena-libs:2.12.1
    |    |    +--- org.apache.jena:jena-tdb:1.1.1
    |    |    |    +--- org.apache.jena:jena-arq:2.12.1
    |    |    |    |    +--- org.apache.jena:jena-core:2.12.1
    |    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.6 -> 1.7.10
    |    |    |    |    |    +--- org.apache.jena:jena-iri:1.1.1
    |    |    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.6 -> 1.7.10
    |    |    |    |    |    |    \--- log4j:log4j:1.2.17
    |    |    |    |    |    +--- xerces:xercesImpl:2.11.0
    |    |    |    |    |    |    \--- xml-apis:xml-apis:1.4.01
    |    |    |    |    |    \--- log4j:log4j:1.2.17 …
Run Code Online (Sandbox Code Playgroud)

dependencies gradle android-gradle-plugin

11
推荐指数
1
解决办法
4149
查看次数

为什么 gradlew :app:dependencyInsight 失败?

我尝试运行此命令以列出 firebase-messaging 库的所有依赖项:

gradlew :app:dependencyInsight --configuration compile --dependency firebase-messaging
Run Code Online (Sandbox Code Playgroud)

但它返回给我:

:app:dependencyInsight 在配置“:app:compile”中找不到与给定输入匹配的依赖项

BUILD SUCCESSFUL in 0s 1 个可操作的任务:1 个执行

这是我的 build.gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.test.myapplication"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:27.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation 'com.google.firebase:firebase-messaging:12.0.1'
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

android gradle gradlew build.gradle android-gradle-plugin

9
推荐指数
2
解决办法
4685
查看次数

&gt; 任务:app:checkDebugDuplicateClasses 失败

Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk8-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.7.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.21)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion found in modules jetified-kotlin-stdlib-1.8.0 (org.jetbrains.kotlin:kotlin-stdlib:1.8.0) and jetified-kotlin-stdlib-jdk7-1.7.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.21)
Run Code Online (Sandbox Code Playgroud)

android gradle

8
推荐指数
1
解决办法
9596
查看次数