홈>
프로 가드 (이클립스 IDE에서 생성 된 프로 가드) 후 애플리케이션이 충돌합니다.
로그 캣 스택 트레이스
W/SupportMenuInflater(13657): Cannot instantiate class: android.support.v7.widget.ShareActionProvider
W/SupportMenuInflater(13657): java.lang.ClassNotFoundException: android.support.v7.widget.ShareActionProvider
W/SupportMenuInflater(13657): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
E/AndroidRuntime(13657): FATAL EXCEPTION: main
E/AndroidRuntime(13657): java.lang.NullPointerException
E/AndroidRuntime(13657): at com.mypack.app.MainActivity.onCreateOptionsMenu(Unknown Source)
E/AndroidRuntime(13657): at android.app.Activity.onCreatePanelMenu(Activity.java:2571)`
proguard.cfg 파일의 기본 버전
# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
# Optimization is turned off by default. Dex does not like code run
# through the ProGuard optimize and preverify steps (and performs some
# of these optimizations on its own).
-dontoptimize
-dontpreverify
# Note that if you want to enable optimization, you cannot just
# include optimization flags in your own project configuration file;
# instead you will need to point to the
# "proguard-android-optimize.txt" file instead of this one from your
# project.properties file.
-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
#-keep public class android.support.v7.widget.ShareActionProvider
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * {
native <methods>;
}
# keep setters in Views so that animations can still work.
# see http://proguard.sourceforge.net/manual/examples.html#beans
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
# We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontwarn android.support.**
`
수정: 문제를 해결하려면이 줄을 proguard.cfg에 추가해야하며 오류가 없습니다. 새로운 줄은 proguard에게 android.support 라이브러리를 무시하도록 지시합니다.
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
- 답변 # 1
관련 자료
- "heroku-postgresql로 DATABASE 업데이트"후 애플리케이션 충돌
- assembly - 실행 파일 연결에/3 키를 사용하면 DOSBOX가 충돌 함
- spring boot - Intellij에서 Kotlin을 업데이트 한 후 Eclipse에서 애플리케이션 실행 오류
- wix - 앱을 설치하고 시작한 후 애플리케이션이 항상 맨 위에 표시되지 않습니다
- c++ - wsprintf ()가 응용 프로그램을 중단하지만 성공합니다
- Android 60 이하에서 SVG 배경 충돌이있는보기
- c# - Xamarin Android의 애플리케이션 데이터 경로
- Android searchview는 검색 후 recyclerview에서 숨겨집니다
- unity3d - Unity Android 애플리케이션에 권한을 추가하는 방법은 무엇입니까?
- reactjs - React 애플리케이션에서 다시 렌더링 할 때 AgGrid가 충돌합니다
- Dart 및 Kotlin 플러그인을 비활성화 한 후 Android 스튜디오가 실행되지 않음
- c++ - 응용 프로그램이 충돌하고 동시에 실행됩니다
- 결과 및 고정 데이터를 Android 애플리케이션으로 가져 오기
- Android 41로 업데이트 한 후 Android Studio 오류
- Firebase crashlytics를 추가 할 때 Android 앱이 다운 됨
- java - Android에서 클릭 이벤트 후에도 이전 텍스트 표시
- inno setup - 설치 후가 아닌 완료 버튼을 클릭 한 후 응용 프로그램을 실행하십시오
- vba - Excel 업그레이드 후 EOF를 평가하는 동안 ADO 레코드 집합이 충돌 함
- sdk - Android-studio 341에서 API 9로 Android 애플리케이션을 작성하려면 어떻게해야합니까?
- windows 7 - Chrome pdf 뷰어는 5 후에 충돌합니다10 초
프로 가드 설정에서 찾을 수없는 클래스의 설명을 주석 처리했습니다 :
댓글을 해제하고 다시 빌드 해 보셨습니까?
수정 : 문제가 해결되지 않았으므로 여기에 설명 된 모든 정보를 확인해보십시오.
v7 지원 라이브러리 ActionBar에 대한 Android Proguard 구성
특히 다음을 추가하십시오 :
이것이 효과가 있다면 좀 더 구체적으로 만들 수 있습니다. 왜냐하면 이것은 사용하지 않는 클래스까지도 모든 지원 라이브러리 클래스를 유지하기 때문입니다.