【问题标题】:Error when trying to add NewRelic library into my application尝试将 NewRelic 库添加到我的应用程序时出错
【发布时间】:2014-07-16 13:07:26
【问题描述】:

我正在尝试将 NewRelic 库包含到我的项目中,但是在构建它时出现此错误

Error:Execution failed for task ':v1:preDexDebug'.
com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\Program Files\Android\android-studio\sdk\build-tools\19.1.0\dx.bat --dex     --output 
    C:\Documents and Settings\t.hart\My Documents\Android\MoneyTracker\v1\build\pre-dexed\debug\android-agent-3.378.0-27125f93a249f513379e837d75ebec255f6dcaa4.jar 
    C:\Documents and Settings\t.hart\.gradle\caches\modules-2\files-2.1\com.newrelic.agent.android\android-agent\3.378.0\1ebf0e20081a7f1b9a5c31bfc4e7dba776e0c171\android-agent-3.378.0.jar
Error Code:
    1
Output:
    Error opening zip file or JAR manifest missing : C:\Documents

要包含库,您需要在 build.gradle 文件中添加 3 行代码,

//This to the buildscript dependancies
classpath 'com.newrelic.agent.android:agent-gradle-plugin:3.378.0'

//This line (in the example it's under the android line
apply plugin: 'newrelic'

//And this to dependancies
compile 'com.newrelic.agent.android:android-agent:3.378.0'

经过反复试验,似乎是最后一行(编译行)导致错误被抛出。这是因为C:/Documents And Settings 中的空格吗?

我也在使用这些库,它们都下载到 build/pre-dexed/debug 文件夹中没有问题。

compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.android.support:gridlayout-v7:19.1.0'
compile 'com.android.support:support-v4:19.1.0'

编辑:更新错误信息

Error:Execution failed for task ':v1:preDexDebug'.
com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\Program Files\Android\android-studio\sdk\build-tools\19.1.0\dx.bat --dex --output 
    C:\MoneyTracker\v1\build\pre-dexed\debug\support-v4-19.1.0-cd41ef807caadb29c9df0131dee869d3723185ad.jar 
    C:\Program Files\Android\android-studio\sdk\extras\android\m2repository\com\android\support\support-v4\19.1.0\support-v4-19.1.0.jar
Error Code:
    1
Output:
    Error opening zip file or JAR manifest missing : C:\Documents

现在这是一个奇怪的错误...

【问题讨论】:

    标签: android gradle newrelic


    【解决方案1】:

    它实际上与文件夹名称中的空格有关,错误消息告诉你 gradle 在 C:\Documents 中找不到 zip 或 jar 清单,这显然不是你的 newrelic 库所在的文件夹。尝试移动您的项目位于名称没有空间的目录中。养成习惯,有些工具真的不喜欢文件名中的空格(尤其是 unix root 的)。

    【讨论】:

    • 是的,您必须向系统表明您的 gradle 文件在哪里。如何执行此操作取决于它现在的配置方式。你能发布你的 PATH 环境变量的内容吗?
    • 这取决于工具(这里我想是 android studio)如何管理文件名中的空格。顺便说一句,你应该在 android studio 中设置一个 gradle_home 变量(可能围绕 sdk/build 设置)。只需将它指向 gradle new 目录就可以了。我目前正在下载android-studio,看看它是在哪里定义的,希望能给你一个更准确的答案。
    • 太棒了! Windows 在玩 Java 时通常很麻烦,配置良好的 linux VM 可能会为您节省大量时间。
    • 好的,在 Documents and Settings(maven 目录)中查找 .m2 目录和 M2_HOME 或 MAVEN_HOME 环境变量。我认为这是您现在问题的根源
    【解决方案2】:

    您可以将GRADLE_USER_HOME 环境变量、gradle.user.home 系统属性或--gradle-user-home 命令行参数设置为名称没有空格的目录。

    (通过How to change Gradle download location

    【讨论】:

      猜你喜欢
      • 2011-04-15
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-24
      • 2020-06-07
      • 2011-07-22
      • 2014-01-08
      相关资源
      最近更新 更多