1

내 Android 앱에 Firebase 오류보고를 사용하고 있습니다. Proguard를 사용하여 내 앱을 난처하게합니다. 내가 apk를 빌드 한 후에 생성 된 mapping.txt 파일을 Firebase Crash보고에 업로드했지만, 난 여전히 다음과 같이 내 프로젝트에 사용되는 라이브러리의 코드 인 Obfuscated 코드를 얻고 있습니다.Firebase Crash Report에 mapping.txt를 업로드 한 후에도 로그에 난독 화 코드가 표시되는 이유는 무엇입니까?

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 
'long com.google.firebase.b.a.a(java.lang.String)' on a null object reference 
com.myapp.myodulel.GamePageFragment.onActivityCreated (GamePageFragment.java) 
__null__.access$300 (GamePageFragment.java) 
android.support.v4.app.Fragment.getActivity (Fragment.java) 
__null__.performActivityCreated (Fragment.java) 
android.support.v4.app.FragmentManagerImpl.modifiesAlpha  (FragmentManagerImpl.java) 

타사 함수는 "com.google.firebase.b.a.a"로 제대로 표시되지 앱입니다. 또한 나는 적절한 라인 수의 에러를 얻지 못하고있다.

내 프로젝트에 다음 jar를 사용하고 있습니다.

compile 'com.google.firebase:firebase-ads:9.8.0'  
compile 'com.google.firebase:firebase-config:9.8.0' 
compile 'com.google.firebase:firebase-crash:9.8.0' 
compile 'com.google.android.gms:play-services-analytics:9.8.0' 
compile 'com.android.support:appcompat-v7:24.1.1' 
compile project(path: ':BaseGameUtils') 
compile 'com.squareup.picasso:picasso:2.5.2' 
compile 'com.facebook.android:facebook-android-sdk:4.8.2' 

나는 이러한 제 3 자 응용 프로그램을 사용하는 것이 적절 난독를 구성하지 않은 생각합니다. 나는 그들의 문서를 보았지만 추가 할 내용과 추가하는 방법에 대해서는 언급하지 않았다. Proguard를 처음 보면서 저를 도우십시오.

편집 :

현재 내 proguard-rule.pro 파일이 의견 이외의 코드를 다음있다.

-dontwarn com.squareup.okhttp.** 

나는 몇 가지 조사를하고 난 내가 중포 기지와 구글 플레이 서비스처럼 내 응용 프로그램에서 사용하고 타사 라이브러리에 대한 -keep 플래그를 추가 할 필요가 있다고 생각합니다. 그러나 난독 화를 타협 할 것인가? 그리고 그 이후에 줄 번호를 얻을 것인가? 아니면 다른 일을해야합니까?

+1

여기에 프로 가드 파일을 게시 할 수 있습니다 –

+0

게시하십시오 GamePageFragment.onActivityCreated –

답변

1

올바른 줄 번호를 확인하려면 난독의 설정에

-keepattributes SourceFile,LineNumberTable 

를 추가합니다.

+0

프로덕션 환경에이 플래그를 유지하는 것이 부작용입니까? – vijay053

+0

예. 소스를 가진 사람은 수동으로 스택 추적을 되돌릴 수 있습니다. 이를 방지하려면'-renamesourcefileattribute' 옵션을 사용하십시오 – F43nd1r

+0

그리고 "com.google.firebase.b.a.a"문제를 해결하는 방법. -keep 플래그를 사용하여 올바른 해결책을 찾으십니까? 그렇다면 앱에서 사용하고있는 모든 타사 라이브러리에 보관 플래그를 추가해야합니까? – vijay053

관련 문제