无法规范化文件路径&#; E:\ WorkSpace \ mapdemo \ app \ build \ intermediates \ mockable-Google Inc.:Google API:21.jar'

时间:2015-02-21 12:54:22

标签: java android android-studio

我正在尝试运行此应用,但它给了我错误,我不明白这个错误的含义?

我在build.gradle文件中添加了google play服务库:

apply plugin: 'com.android.application'

android {
compileSdkVersion 'Google Inc.:Google APIs:21'
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "act.com.mapdemo"
    minSdkVersion 19
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services:6.5.87'
}

我的xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

</RelativeLayout>

当我跑步时,它给了我错误:

Gradle 'mapdemo' project refresh failed

Error:Could not normalize path for file 'E:\WorkSpace\mapdemo\app\build\intermediates\mockable-Google Inc.:Google APIs:21.jar'.
The filename, directory name, or volume label syntax is incorrect

4 个答案:

答案 0 :(得分:28)

将您的Android Gradle插件版本更改为:

dependencies {
    classpath 'com.android.tools.build:gradle:1.1.2'
}

这是早期版本的插件中的一个错误,它无法正确地逃避Windows上的非法字符,并在v1.1.2中修复:

https://code.google.com/p/android/issues/detail?id=148912

答案 1 :(得分:4)

在android studio中,转到File-&gt;项目结构 单击app / project name 单击编译SDK版本下拉列表,选择一个值 如有必要,请选择构建工具版本。

这将用一个整数值替换compileSdkVersion,允许你继续。

它实际上将值赋予

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'

所以你可以尝试一下,看看它是否适合你。它对我有用。

am on windows 7 android studio ver 1.1.0

答案 2 :(得分:2)

看起来您正在使用Windows,文件名包含冒号。但在Windows下,文件名不得包含以下任何字符:/:*?&#34;&lt;&gt; |

E:\WorkSpace\mapdemo\app\build\intermediates\mockable-Google Inc.:Google APIs:21.jar
                                                                 ^           ^

答案 3 :(得分:1)

当gradle尝试运行项目同步时,我遇到了同样的问题。

错误:

  

错误:无法规范化文件路径... \ app \ build \ intermediates \ mockable-Google Inc.:Google API:19.jar&#39;。

显然,gradle正在尝试创建名为&#34; mockable-Google Inc.:Google API:19.jar&#34;的文件。但它在Windows中不起作用,因为文件名包含非法字符(例如&#34;:&#34;在我的情况下)。我认为正确的问题是,如何告诉gradle,避免在文件名中使用非法字符?

谢谢

P.S。 在Linux下构建相同的Android项目可以正常工作。