我使用gradle更新到Android studio 2.0 Beta 6的最新版本:
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-beta6'
}
该应用程序在模拟器和设备上运行得非常好,我测试了所有东西并且工作正常。
只有当我尝试生成签名APK时,我才会遇到很多错误,
我在依赖项中遇到了一些错误,当我排除了vector drawable,vector animate drawable和Support-v4库时,它们全部解决了
现在我没有任何依赖项错误。
现在我的app模块的gradle.build看起来像这样:
apply plugin: 'com.android.application'
android {
configurations {
//all*.exclude group: 'com.android.support', module: 'support-v4'
all*.exclude module: 'animated-vector-drawable'
all*.exclude module: 'support-vector-drawable'
//all*.exclude module: 'support-v4'
}
repositories {
maven { url "https://jitpack.io" }
}
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId "com.test.test"
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1"
// multiDexEnabled true
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.github.afollestad.material-dialogs:commons:0.8.5.5@aar') {
transitive = true
exclude module: 'support-v4'
exclude module: 'appcompat-v7'
exclude module: 'recyclerview-v7'
}
compile('com.google.android.gms:play-services-ads:8.4.0') {
exclude module: 'support-v4'
}
compile('com.google.android.gms:play-services-analytics:8.4.0') {
exclude module: 'support-v4'
}
compile('com.android.support:appcompat-v7:23.2.0') {
exclude module: 'support-v4'
exclude module: 'animated-vector-drawable'
exclude module: 'support-vector-drawable'
}
compile('com.android.support:support-v4:23.2.0') {
exclude module: 'animated-vector-drawable'
exclude module: 'support-vector-drawable'
}
compile('com.android.support:palette-v7:23.2.0') {
exclude module: 'support-v4'
}
compile('com.android.support:cardview-v7:23.2.0') {
exclude module: 'support-v4'
}
compile('com.android.support:recyclerview-v7:23.2.0') {
exclude module: 'support-v4'
}
compile('com.android.support:design:23.2.0') {
exclude module: 'support-v4'
}
compile('com.nineoldandroids:library:2.4.0') {
exclude module: 'support-v4'
}
compile('com.baoyz.swipemenulistview:library:1.2.1') {
exclude module: 'support-v4'
exclude module: 'appcompat-v7'
exclude module: 'recyclerview-v7'
}
compile('com.squareup.picasso:picasso:2.5.2') {
exclude module: 'support-v4'
}
compile('com.nononsenseapps:filepicker:2.5.0') {
exclude module: 'support-v4'
exclude module: 'appcompat-v7'
exclude module: 'recyclerview-v7'
}
compile 'com.google.code.gson:gson:2.6.1'
}
只有在我为发布版本构建时才会显示错误:
这是我打开multiDex时的错误:
Error:Execution failed for task ':app:transformClassesWithMultidexlistForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
当我关闭它时这是错误:
:app:transformClassesWithDexForRelease
Error:Error converting bytecode to dex:
Cause: java.lang.RuntimeException: Exception parsing classes
Error:Execution failed for task ':app:transformClassesWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
我尝试将buildToolsVersion '23.0.2'
更改为每个可能的版本,但没有任何更改。
当我把版本22.0.1我得到了这个错误:
Error:Error converting bytecode to dex:
Cause: com.android.dx.cf.iface.ParseException: name already added: string{"a"}
Error:Execution failed for task ':app:transformClassesWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
我尝试了所有可能的支持库版本和相同的结果。
我尝试使用Java 1.6和1.7,但没有任何改变!
请问其他可能的解决方案是什么?
答案 0 :(得分:83)
只做Build > Clean Project
等待清除结束,然后Build > Rebuild Project
,错误消失了。而已。
答案 1 :(得分:47)
我也遇到了同样的错误,我正在搜索许多现有的答案,重复的依赖关系或multidex等,但没有一个工作。 (Android studio 2.0 Beta 6,Build tools 23.0.2,no multidex)
事实证明,我曾经使用的包名称与Manifest中描述的包名称不匹配。
在其他ParseException行中,我发现我的文件在不同的模块中有类似的包名称/路径,可能与dexer冲突。
示例:强>
模块A: com.example.xyz.ticketing.modulea.Interface.java
模块B: com.example.Xyz.ticketing.moduleb.Enumerations.java
模块C:依赖于A和B
修好" Xyz"为了小写,dexer又恢复了。
如何查找:
当我查看gradle控制台的输出时, ParseExceptions 看起来像这样:
AGPBI:{" kind":"错误","文字":"将字节码转换为dex时出错:\ n原因:java .lang.RuntimeException:异常解析类"
我滚动接近异常的结尾。该长期异常行中有一部分实际上提到了原因:
引起:com.android.dx.cf.iface.ParseException:类名(at / dummycompany / mFGM / hata / hwp / BuildConfig)与path不匹配(at / dummycompany / mfgm / hata / hwp /BuildConfig.class)
通过这种方式,我找到了搜索错配包名称/路径的位置
答案 2 :(得分:10)
我的解决方案是修改Build Gradle文件。 我发现,问题是GC开销(内存不足)。
所以我在配置中添加了一些代码
android {
dexOptions {
incremental = true;
preDexLibraries = false
javaMaxHeapSize "2g"
}
}
proguard还有一些其他问题。 您还要将minifyEnabled设置为false。
答案 3 :(得分:3)
我在其中一个帮助器类中有一个错误的包名,因此我遇到了错误。所以检查所有类并确保你有正确的包名。
答案 4 :(得分:2)
我的解决方案不同,我在proguard-rules.pro
-optimizationpasses 5
-overloadaggressively
-repackageclasses ''
-allowaccessmodification
确保同时更新SDK管理器中的所有内容。
答案 5 :(得分:2)
If your targetSdkVersion is 25 or higher version and you use JDK 8 you have to add in your build.gradle file the following:
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
More info: https://stackoverflow.com/a/37294741
答案 6 :(得分:1)
从我的-overloadaggressively
中移除proguard-rules.pro
,为我修复此内容。
或者,添加-useuniqueclassmembernames
也会修复它。
答案 7 :(得分:1)
我尝试./gradlew clean build
,使工作室缓存无效,重启机器。但是解决了这个问题的是转瞬即运行
答案 8 :(得分:0)
使用Android工作室模板进行登录活动时出现此问题
我选择了“活动”套餐来进行我的活动
AndroidManifest.xml 中的模板(而非.activity.LoginActivity
使用了.LoginActivity
因此导致错误。
答案 9 :(得分:0)
如果您遇到此错误,您的套餐中的套餐肯定会与您在课程中设置的其他套餐不同。小心。
答案 10 :(得分:0)
我今天遇到了同样的问题,问题是在我的Constants.java中我已定义(错误地)
public static final class Checkout {
.......
}
和
public static final class CHECKOUT {
......
}
答案 11 :(得分:0)
就我而言,我制作的课程尚未使用。所以我必须删除该类或使用该类。
答案 12 :(得分:0)
我遇到了同样的错误。看来它是由于将包重命名为小写而一个类具有先前的案例措辞。
答案 13 :(得分:-1)
您的gradle.build文件将包含
compile files('libs/httpclient-4.2.1.jar')
从文件中删除此行。
{{1}}
它会正常工作。