gradle buid 失败,无法将具有类 'null' 的对象'null'转换为类"int"。改为尝试'java.lang.Integer'



我使用 gradle -s build 来跟踪这个 eroor 并得到下面的跟踪日志

Caused by: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'null' with class 'null' to class 'int'. Try 'java.lang.Integer' instead
at com.android.build.gradle.internal.dependency.DependencyChecker.getApiLevelFromMavenArtifact(DependencyChecker.groovy:99)
at com.android.build.gradle.internal.dependency.DependencyChecker.excluded(DependencyChecker.groovy:38)
at com.android.build.gradle.internal.dependency.DependencyChecker$excluded.call(Unknown Source)
at com.android.build.gradle.BasePlugin.addDependency(BasePlugin.groovy:3399)
at com.android.build.gradle.BasePlugin$_addDependency_closure191.doCall(BasePlugin.groovy:3417)
at com.android.build.gradle.BasePlugin.addDependency(BasePlugin.groovy:3415)
at com.android.build.gradle.BasePlugin$_resolveDependencyForConfig_closure187.doCall(BasePlugin.groovy:3273)
at com.android.build.gradle.BasePlugin.resolveDependencyForConfig(BasePlugin.groovy:3271)
at com.android.build.gradle.BasePlugin.this$2$resolveDependencyForConfig(BasePlugin.groovy)
at com.android.build.gradle.BasePlugin$this$2$resolveDependencyForConfig$1.callCurrent(Unknown Source)
at com.android.build.gradle.BasePlugin.resolveDependencies(BasePlugin.groovy:3174)
at com.android.build.gradle.internal.VariantManager.createVariantData(VariantManager.java:464)
at com.android.build.gradle.internal.VariantManager.createVariantDataForProductFlavors(VariantManager.java:550)
at com.android.build.gradle.internal.VariantManager.populateVariantDataList(VariantManager.java:326)
at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:212)
at com.android.build.gradle.internal.VariantManager$createAndroidTasks.call(Unknown Source)
at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.groovy:463)
at com.android.build.gradle.BasePlugin$_createTasks_closure9.doCall(BasePlugin.groovy:408)
at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40)
at org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25)
at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83)
at org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy13.afterEvaluate(Unknown Source)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79)
... 28 more

我的项目依赖于具有依赖项的 maven 项目:

<dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>4.4.2</version>
        <scope>provided</scope>
    </dependency>

我的问题是为什么在getApiLevelFromMavenArtifact()中id.version是空的?

据我所知,mavenCenter或jCenter中没有'com.google.android:android:4.4.2'

据我猜,你正在使用Gradle开发一个Android项目。如果正确,你不需要自己写一篇关于android.jardependencies

您应该在名为 build.gradle 的文件的开头写apply plugin: 'com.android.library'。你只需要告诉gradle你想要哪个版本。如

apply plugin: 'com.android.library'
android {
    compileSdkVersion 15
    minSdkVersion 14
}

如果我猜错了,也许你只能使用jCentermavenCenter提供的关于安卓的版本.jar .

最新更新