Revisiting Android and support libraries (support-v4 and appcompat-v7)
I have previously written on this subject, but now I am using IntelliJ IDEA 13 with the latest Android SDK of this writing (September 2014) and when you create a project you might be greeted by an error message like the following:
Error:Gradle: A problem occurred configuring project ':projectname'. > Could not resolve all dependencies for configuration ':projectname:_debugCompile'. > Could not find any version that matches com.android.support:support-v4:0.0.+. Required by: Projectname:projectname:unspecified > Could not find any version that matches com.android.support:appcompat-v7:19.+. Required by: Projectname:projectname:unspecified |
The Android SDK has switched over to Gradle since I last wrote about it. In this case the default setup already searches the local libs
directory under Projectname/projectname
for any jars to compile with the build of the application. But if you would follow the instructions from my previous post the chance is high that you keep running into this problem. Aside from the installation of the Android Support Library
, you will also need to install the Android Support Repository
in order to make dependency resolution work. Do verify that your Projectname/local.properties
contains a set property for sdk.dir
that points to the root of your locally installed Android SDK.
Now, you might still run into problems. The thing is that in your Projectname/projectname/build.gradle
you generally want to have the compile lines for support-v4
and appcompat-v7
match the version of your targetSdkVersion
. So this might become:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:20.0.0' compile 'com.android.support:appcompat-v7:20.0.0' } |
These numbers can be found in the SDK under extras/android/m2repository/com/android/support
under the respective entries for appcompat-v7
and support-v4
. If you would use +
for the version identifier, you run the chance of picking up the latest version, including release candidates and this might break your build. So in this case being explicit is better than depending on it implictly.
Syndicated 2014-09-07 15:09:58 from In Nomine - The Lotus Land