代码之家  ›  专栏  ›  技术社区  ›  Brad Hein

Android Ant编译失败:java.lang.noclassdefoundError:com.android.jarutils.signedjarbuilder

  •  0
  • Brad Hein  · 技术社区  · 14 年前

    因此,我使用Android实用程序从头开始创建build.xml:

    $ /opt/android-sdk-linux_86/tools/android create project --target android-6 --name Dash --path . --activity Main --package com.gtosoft.dash
    

    然后我试图开始编译,但失败了!

    $ ant release
    Buildfile: build.xml
        [setup] Android SDK Tools Revision 6
        [setup] Project Target: Android 2.0.1
        [setup] API level: 6
        [setup] WARNING: Attribute minSdkVersion in AndroidManifest.xml (5) is lower than the project target API level (6)
        [setup] Importing rules file: platforms/android-6/templates/android_rules.xml
    
    -dirs:
         [echo] Creating output directories if needed...
    
    -resource-src:
         [echo] Generating R.java / Manifest.java from the resources...
    
    -aidl:
         [echo] Compiling aidl files into Java classes...
    
    compile:
        [javac] Compiling 1 source file to /home/brad/Desktop/android/eclipse/Dash/bin/classes
    
    -dex:
         [echo] Converting compiled files and external libraries into /home/brad/Desktop/android/eclipse/Dash/bin/classes.dex...
         [echo]          
    
    -package-resources:
         [echo] Packaging resources
     [aaptexec] Creating full resource package...
    
    -package-no-sign:
    [apkbuilder] Creating Dash-unsigned.apk for release...
    
    BUILD FAILED
    /opt/android-sdk-linux_86/platforms/android-6/templates/android_rules.xml:286: The following error occurred while executing this line:
    /opt/android-sdk-linux_86/platforms/android-6/templates/android_rules.xml:152: java.lang.NoClassDefFoundError: com.android.jarutils.SignedJarBuilder
    
    Total time: 16 seconds
    

    我不知它为什么抱怨 com.android.jarutils.SignedJarBuilder

    编辑:重新安装SDK后,我遇到了相同的问题:(

    $ant-v版本:

    BUILD FAILED
    /opt/android-sdk-linux_86/platforms/android-7/ant/ant_rules_r2.xml:301: The following error occurred while executing this line:
    /opt/android-sdk-linux_86/platforms/android-7/ant/ant_rules_r2.xml:156: java.lang.NoClassDefFoundError: com.android.jarutils.SignedJarBuilder
       at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ant-1.7.1.jar.so)
       at org.apache.tools.ant.taskdefs.MacroInstance.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Target.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Target.performTasks(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeSortedTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeTarget(ant-1.7.1.jar.so)
       at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Main.runBuild(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Main.startAnt(ant-1.7.1.jar.so)
       at org.apache.tools.ant.launch.Launcher.run(ant-launcher-1.7.1.jar.so)
       at org.apache.tools.ant.launch.Launcher.main(ant-launcher-1.7.1.jar.so)
    Caused by: /opt/android-sdk-linux_86/platforms/android-7/ant/ant_rules_r2.xml:156: java.lang.NoClassDefFoundError: com.android.jarutils.SignedJarBuilder
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       at org.apache.tools.ant.taskdefs.Sequential.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       ...15 more
    Caused by: java.lang.NoClassDefFoundError: com.android.jarutils.SignedJarBuilder
       at java.lang.Class.initializeClass(libgcj.so.9)
       at com.android.apkbuilder.internal.ApkBuilderImpl.createPackage(ApkBuilderImpl.java:397)
       at com.android.ant.ApkBuilderTask.createApk(ApkBuilderTask.java:342)
       at com.android.ant.ApkBuilderTask.execute(ApkBuilderTask.java:238)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       ...21 more
    Caused by: java.lang.ClassNotFoundException: sun.security.x509.AlgorithmId
       at org.apache.tools.ant.AntClassLoader.findClassInComponents(ant-1.7.1.jar.so)
       at org.apache.tools.ant.AntClassLoader.findClass(ant-1.7.1.jar.so)
       at org.apache.tools.ant.AntClassLoader.loadClass(ant-1.7.1.jar.so)
       at java.lang.ClassLoader.loadClass(libgcj.so.9)
       at java.lang.Class.initializeClass(libgcj.so.9)
       ...27 more
    --- Nested Exception ---
    /opt/android-sdk-linux_86/platforms/android-7/ant/ant_rules_r2.xml:156: java.lang.NoClassDefFoundError: com.android.jarutils.SignedJarBuilder
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       at org.apache.tools.ant.taskdefs.Sequential.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       at org.apache.tools.ant.taskdefs.MacroInstance.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Target.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Target.performTasks(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeSortedTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeTarget(ant-1.7.1.jar.so)
       at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Main.runBuild(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Main.startAnt(ant-1.7.1.jar.so)
       at org.apache.tools.ant.launch.Launcher.run(ant-launcher-1.7.1.jar.so)
       at org.apache.tools.ant.launch.Launcher.main(ant-launcher-1.7.1.jar.so)
    Caused by: java.lang.NoClassDefFoundError: com.android.jarutils.SignedJarBuilder
       at java.lang.Class.initializeClass(libgcj.so.9)
       at com.android.apkbuilder.internal.ApkBuilderImpl.createPackage(ApkBuilderImpl.java:397)
       at com.android.ant.ApkBuilderTask.createApk(ApkBuilderTask.java:342)
       at com.android.ant.ApkBuilderTask.execute(ApkBuilderTask.java:238)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       ...21 more
    Caused by: java.lang.ClassNotFoundException: sun.security.x509.AlgorithmId
       at org.apache.tools.ant.AntClassLoader.findClassInComponents(ant-1.7.1.jar.so)
       at org.apache.tools.ant.AntClassLoader.findClass(ant-1.7.1.jar.so)
       at org.apache.tools.ant.AntClassLoader.loadClass(ant-1.7.1.jar.so)
       at java.lang.ClassLoader.loadClass(libgcj.so.9)
       at java.lang.Class.initializeClass(libgcj.so.9)
       ...27 more
    --- Nested Exception ---
    java.lang.NoClassDefFoundError: com.android.jarutils.SignedJarBuilder
       at java.lang.Class.initializeClass(libgcj.so.9)
       at com.android.apkbuilder.internal.ApkBuilderImpl.createPackage(ApkBuilderImpl.java:397)
       at com.android.ant.ApkBuilderTask.createApk(ApkBuilderTask.java:342)
       at com.android.ant.ApkBuilderTask.execute(ApkBuilderTask.java:238)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       at org.apache.tools.ant.taskdefs.Sequential.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       at org.apache.tools.ant.taskdefs.MacroInstance.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.UnknownElement.execute(ant-1.7.1.jar.so)
       at java.lang.reflect.Method.invoke(libgcj.so.9)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Task.perform(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Target.execute(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Target.performTasks(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeSortedTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeTarget(ant-1.7.1.jar.so)
       at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Project.executeTargets(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Main.runBuild(ant-1.7.1.jar.so)
       at org.apache.tools.ant.Main.startAnt(ant-1.7.1.jar.so)
       at org.apache.tools.ant.launch.Launcher.run(ant-launcher-1.7.1.jar.so)
       at org.apache.tools.ant.launch.Launcher.main(ant-launcher-1.7.1.jar.so)
    Caused by: java.lang.ClassNotFoundException: sun.security.x509.AlgorithmId
       at org.apache.tools.ant.AntClassLoader.findClassInComponents(ant-1.7.1.jar.so)
       at org.apache.tools.ant.AntClassLoader.findClass(ant-1.7.1.jar.so)
       at org.apache.tools.ant.AntClassLoader.loadClass(ant-1.7.1.jar.so)
       at java.lang.ClassLoader.loadClass(libgcj.so.9)
       at java.lang.Class.initializeClass(libgcj.so.9)
       ...27 more
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Dominic Mitchell    14 年前

    听起来像(可能)一个损坏的SDK。你又试着下载了吗?

    另一种选择是跑步 ant -v 而不是 ant . 这将产生大量的诊断输出,可能会帮助您了解正在发生的事情。