예전에 작업 했언던 적이 있었는데 따로 정리를 안해놔서 삽질 엄청 했다.
우선 Android Studio에서는 모듈 난독화를 쉽게 설정이 가능했는데 어쩌다보니 이클립스에서 해야 하는 일이 생겼다.
Library Project는 빌드시에 동작하는 proguard-project.txt 가 먹히질 않는다.
그래서 따로 jar파일을 만든 후에 proguard를 따로 돌려줘야 한다.
1. Export Jar
2. {sdk_home}\tools\proguard\bin\proguardgui.bat
3. 저장했던 configure가 있다면 로딩해오면 좋다.
일단 대충 항목을 설명해야 겠다.
내가 헤맸던 부분은 바로 이 부분이였다.
-injars : 난독화할 jar 경로
-outjars : 결과물 경로
-libraryjars : 프로젝트에서 참조하고 있는 jar 파일
ex)
-libraryjars 'C:\Android\sdk\platforms\android-23\android.jar'
-libraryjars 'C:\workspace\myproject\libs\android-support-v4.jar'
-libraryjars 'C:\workspace\myproject\libs\google-play-services.jar'
-libraryjars 'C:\Android\sdk\platforms\android-23\optional\org.apache.http.legacy.jar'
기존 proguard-project.txt 상단에 저 옵션을 추가한후
load configuration을 하면 쉽게 설정이 가능하다.
추가로 {sdk_home}\tools\proguard\examples\android.pro 를 보면 프로가드에 대한 옵션을 볼수 있다.
추가로 javascript가 동작하지 않았다.
I copy my answer from this topic for you: http://stackoverflow.com/a/19994873/1735499
And, if you are using Proguard, remember to add this
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keepattributes JavascriptInterface
-keep public class com.mypackage.MyClass$MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass$MyJavaScriptInterface
-keepclassmembers class com.mypackage.MyClass$MyJavaScriptInterface {
<methods>;
}
If it's still not OK, add this
-keepattributes *Annotation*
Note: your MyJavaScriptInterface must be Public class
Ref#: Android Proguard Javascript Interface Fail
Br,
Frank
'IT > Android' 카테고리의 다른 글
[Jar] 프로가드 올린 라이브러리에서 에러 발생 (0) | 2017.01.26 |
---|---|
[SVN] 권한을 줬는데도 Commit이 되지 않을경우 (0) | 2015.06.08 |
이클립스 dex method 65535개 초과시 에러 (0) | 2014.10.31 |
Eclipse 최적의 설정 및 성능 향상 (0) | 2014.10.10 |
[Android]NDK 빌드중 format not a string literal and no format arguments [-Werror=format-security]에러 (0) | 2014.07.07 |