나는 android studio를 사용하여 디버그 및 릴리스 응용 프로그램을 빌드하고 있습니다. 내가 디버그/릴리스 응용 프로그램ProGuard에서 -dontwarn을 사용하는 방법?
./gradlew assembleDebug
./gradlew assembleRelease
를 빌드 할 때 모두 빌드가 완벽하게 만들뿐만 아니라 실행됩니다. 디버그에 대한 적절한 대화 상자를 표시하거나 build.gradle에
지금 내가 추가 한 난독의 세부 사항을 공개 :
signingConfigs {
myConfig {
storeFile file("keystore.jks")
storePassword "abc123!"
keyAlias "androidreleasekey"
keyPassword "pqrs123!"
}
}
buildTypes {
release {
runProguard true
proguardFile getDefaultProguardFile('proguard-android-optimize.txt')
signingConfig signingConfigs.myConfig
}
}
productFlavors {
defaultFlavor {
proguardFile 'proguard-rules.txt'
}
}
지금은
등의 이벤트 로그에 오류에 실패했습니다.경고를 보여줍니다 해결되지 않은 7이 있었다 클래스 또는 인터페이스에 대한 참조 누락 된 라이브러리 jar를 추가하거나 버전을 업데이트해야 할 수 있습니다. 누락 된 클래스없이 코드가 올바르게 작동하면 의 '-dontwarn'옵션으로 경고를 표시하지 않을 수 있습니다. (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
경고 : 프로그램 클래스 멤버에 대한 참조가 2 개 있습니다. 입력 클래스가 일관성이없는 것처럼 보입니다. 코드를 다시 컴파일해야 할 수 있습니다.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember) 는 : 플래시 판매 : 다음 false로 실행을 runProguard 옵션을 설정하면 proguardDefaultFlavorRelease는
1)는 false runProguard =로 APK를 출시 괜찮 :
나는이 질문이?2) 릴리스 빌드를 만드는 동안 dontwarn을 사용하는 방법은 무엇입니까?
전체 오류 로그인가요? 당신이 실제 7 + 2 미해결 참조를 빠뜨린 것 같습니다. '-dontwarn'을 사용하는 것은 아주 쉽습니다. 예를 들면 다음과 같습니다. http://stackoverflow.com/questions/6974231/proguard-hell-cant-find-referenced-class – Jonik
질문 1)과 같이 실제 출시 빌드 (Google Play 등)의 경우 ProGuard를 사용하십시오. (그러나 앱을 리버스 엔지니어링하기가 쉽다는 사실을 신경 쓰지 않는다면 필수는 아닙니다.) ProGuard를 사용하여 얻는 오류를 해결하는 방법을 배우는 데는 1 시간에서 2 시간 정도 소요됩니다. – Jonik
빠른 응답을 보내 주셔서 감사합니다. 이제 dontwarn 행을 proguard-rules.txt에 추가하면 빌드가 성공적으로 생성되었습니다. jcifs.http.NetworkExplorer : jcifs.http : 슈퍼 클래스 또는 인터페이스 인 javax.servlet.http.HttpServlet 경고를 찾을 수 없습니다 지금 내가 내가 경고로 참조 경고를 받고 한 번 더 질문이 있습니다.NtlmHttpFilter : 슈퍼 클래스 또는 인터페이스를 찾을 수 없습니다 javax.servlet.Filter 내가 방법 (1) 사용 :. -dontwarn에서 javax.servlet를 ** 또는이 방법 2 :. -dontwarn의 jcifs.http ** 빌드가 성공적으로 생성되었습니다. 어느 쪽을 선호해야하며이 두 가지 차이점은 무엇입니까? – morya