여기에서이 문제를 해결하기 위해 검색 한 결과 아무 것도 도움이되지 않았습니다. 나는 해결책이 here에 있었을 것이라고 생각했지만, 나는 틀렸다. 자세한 정보 표시가 활성화되어 있어도 콘솔에서 아무 것도 얻지 못하기 때문에 핀 고정하기가 어렵습니다. Proguard를 사용하여 다른 프로젝트를 내보낼 수는 있지만이 특정 프로젝트는 사용할 수 없습니다. 원래 나는 그것이 사용하고있는 opencsv jar와 관련이 있다고 생각했지만 그 jar 파일을 제거하고 코드에서이 파일에 대한 참조를 제거했지만 여전히 오류가 있습니다.무시 무시한 "Dalvik 형식으로의 변환이 오류 1로 실패했습니다"오류로 실패했습니다.
proguard없이 앱을 내보내고 앱 자체가 정상적으로 실행됩니다.
참고 : AlternateJavaBridgelib 항목은 대부분 내 프로젝트에서 사용한 라이브러리입니다. 다른 애플 리케이션에서 proguard를 사용하여 apk를 내보내는 데 문제가 없습니다. (이것이 내가 opencsv jar 일 수도 있지만, 다른 애플 리케이션에서는 사용하지 않는 유일한 다른 jar입니다.)
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public class au.com.bytecode.**
-keep public class java.beans.**
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class * implements java.io.Serializable {
static final long serialVersionUID;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
public boolean equals(java.lang.Object);
}
-dontwarn java.beans.**, android.support.v4.**, com.google.ads.**, android.provider.CalendarContract*, com.dropbox.client2.**,
android.view.Display, com.xiledsystems.AlternateJavaBridgelib.components.altbridge.FormFragment, android.widget.Switch, au.com.bytecode.opencsv.**
편집 :
여기 경우 내가 뭔가를 누락 내 proguard.cfg의 난독가 실제로 작동하는 것 같다. 프로 가드가 어떤 이유로 달려간 후에 실패하는 것 같습니다. 프로젝트에 대해 생성 된 덤프, 매핑, 시드 및 사용 txt 파일을 얻습니다.
감사합니다. Eric, 고칠 수 있습니다. 나는 이전 시점에서 업그레이드했다고 생각했지만, 분명히 그렇지 않았다. 이제 프로 가드를 활성화 한 상태로 앱을 내보낼 수 있습니다. – Ryan
이 문제의 원인을 발견했습니다. 처리중인 수출을 취소했습니다. 일단 이렇게하면, 그것은 보크 가드에게 보인다. 이번에도 똑같은 일을했는데 프로젝트를 삭제하고 작업 영역으로 다시 가져 와서 작동시켜야했습니다. 바라기를이 정보는 당신이 문제를 발견 할 것을 도울 것이다. – Ryan