无法使用.jar编译

时间:2015-11-29 10:00:41

标签: java android jar

真的到处寻找,但我几乎陷入僵局。我目前无法编译任何使用外部.jar的Android项目。即使这只是一个空项目,它总是返回相同的错误:

错误:任务':app:preDexDebug'执行失败。

  

com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'D:\ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe''已完成非零退出值1。

我完全错过了什么吗? Native-java(Netbeans)jar是否与Android不兼容?

目前的流程是:
- 将.jar复制到libs文件夹
- resync gradle
- 清洁重建
- 尝试运行
- 死亡

编辑:对于那些应该碰到这堵墙的人。如果您拥有包含6.0 JDK代码的纯JAVA jar并使用更高级别的JDK进行编译,那么Android将无法识别它并为您提供该特定错误。用JDK 5.0编译我的netbeans项目解决了我的问题,我的Android项目终于运行了。

在Netbeans中,右键单击项目中的libraries文件夹>属性>源和源/二进制格式,选择JDK 5(或更低)。你的Android项目现在应该用你的jar编译。

2 个答案:

答案 0 :(得分:0)

  • 首先,您需要将您的sdk更新为当前版本 Android api喜欢Android M(Api等级23)并且还下载了最新版本的gradle。 (即使用everthing最新并利用​​android sdk开发人员的辛勤工作,因为这有助于Android开发人员和Android用户)
  • 并将其用于您的应用目标版本
  • 然后使用invalidate cache重新启动android并重新启动选项
  • 然后你应该将.jar文件添加到libs文件夹然后单击选项
    添加为库

答案 1 :(得分:0)

您的build.gradle文件中是否有这行代码?:

compile fileTree(dir: 'libs', include: ['*.jar'])

您的libs文件夹位于何处?它应该在模块的根文件夹中,而不是整个项目。

.
├── app
│   ├── app.iml
│   ├── build.gradle
│   ├── libs  <----- check this
│   │   ├── greendao-1.3.7.jar
│   │   ├── httpcore-4.3-beta1.jar
│   │   ├── mimecraft-1.1.1.jar
│   │   └── volley.jar
│   ├── proguard-rules.pro
│   └── src
│       ├── androidTest
│       └── main
├── android
│   ├── app
│   │   └── annotations.xml
│   └── content
│       └── annotations.xml
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
├── project-name.iml
├── local.properties
├── settings.gradle
└── settings.gradle.orig

另外,根据我的经验,大多数时候java finished with non-zero exit code错误与资源或其他非java相关的东西有关。您应该查看Gradle console并查找红线,它们包含您可以检查和修复的实际错误消息。

gradle console screenshot