我使用 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.jar
的dependencies
。
您应该在名为 build.gradle
的文件的开头写apply plugin: 'com.android.library'
。你只需要告诉gradle你想要哪个版本。如
apply plugin: 'com.android.library'
android {
compileSdkVersion 15
minSdkVersion 14
}
如果我猜错了,也许你只能使用jCenter
和mavenCenter
提供的关于安卓的版本.jar .