2017-04-10 5 views
0

나는 오랫동안 proguard를 사용하고 싶었지만 많은 번거 로움이 있습니다.Libgdx enable proguard

하지만 프로 가드가 프로그램에서 사용하지 않는 클래스를 제거 할 수있는 가능성이 있다고 생각 했었는데 간단한 게임에 약 25MB의 가중치가 있었고 자산 2MB도 없어도 상관 없습니다. 난독 화에 대해.

올바르게 구현하기가 쉬워야합니까? 왜냐하면 proguard를 활성화 할 때 대부분의 오류는 난독 화 때문입니까?

이 작업을 수행 할 수 있습니까? 방법?

감사

편집

:

buildscript { 
    repositories { 
     mavenLocal() 
     mavenCentral() 
     maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.5.0' 
    } 
} 

allprojects { 
    apply plugin: "eclipse" 
    apply plugin: "idea" 

    version = '1.0' 
    ext { 
     appName = "test" 
     gdxVersion = '1.9.5' 
     roboVMVersion = '2.3.0' 
     box2DLightsVersion = '1.4' 
     ashleyVersion = '1.7.0' 
     aiVersion = '1.8.0' 

     admobVersion = '10.2.1'; 
    } 

    repositories { 
     mavenLocal() 
     mavenCentral() 
     maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
     maven { url "https://oss.sonatype.org/content/repositories/releases/" } 
    } 
} 

project(":desktop") { 
    apply plugin: "java" 


    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" 
     compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop" 
    } 
} 

project(":android") { 
    apply plugin: "android" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64" 
     compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86" 
     natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64" 

     compile "com.google.android.gms:play-services-ads:$admobVersion" 
    } 
} 

project(":core") { 
    apply plugin: "java" 


    dependencies { 
     compile "com.badlogicgames.gdx:gdx:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" 
     compile fileTree(dir: 'libs', include: '*.jar') 
    } 
} 

tasks.eclipse.doLast { 
    delete ".project" 
} 
+0

proguard는 주로 난독 화에 사용되지만 크기면 고려하면 2-3mb 만 줄입니다. 2 메가 비트의 자산으로 어떻게 25 메가 비트가되는지. 7.5 mil의 자산으로 10 MB의 .apk를 보유하고 있습니다. – Aryan

+0

@AbhishekAryan 나는 잘 모르겠다. IM은 구글 서비스 서비스를 추측한다. lib는 7MB와 같이 추가하고 Im은 admob 광고를 위해서만 사용한다. – centenond

+0

나는 com.google.android.gms : play-services의 google play 서비스의 광고 하위 모듈도 사용하고있다. -ads : 10.0.1'이지만 libGDX 프로젝트의 경우 여전히 25MB 중요합니다. – Aryan

답변

1

이 내 안드로이드 응용 프로그램 모듈을 추가

나는 일식

build.gradle 파일을 사용합니다. 귀하의 libgdx 프로젝트에 적용되는 proguard 규칙을 가지고있는 사전 빌드 proguard-project.txt 파일을 가진 응용 프로그램 모듈.

buildTypes { 
     release { 
      minifyEnabled true 
      proguardFile getDefaultProguardFile('proguard-android-optimize.txt') 
      proguardFile 'proguard-project.txt' 
     } 
    } 

이 줄은 project.properties 파일 내에서 커밋하지 마십시오.

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 

스킨을 사용하지 않으 셨다면 .json에서 가져온 개체가 문제가 될 수 있습니다.

+0

스킨을 사용 중입니다. 모든 lib 대신'google play 서비스의 하위 모듈 '을 추가하는 방법을 추가 할 수 있습니까? – centenond

+0

Google Play 서비스를 사용하는 모듈을 알려주세요. – Aryan

+0

어떻게 확인하나요? 어디에? – centenond