2017-03-10 5 views
16

내 APK 파일을 작성하는 난독 화를 실행, 나는 다음과 같은 오류 얻을 : '안드로이드 스튜디오에서 APK를 만들 때 Aapt_rules.txt를 찾을 수 없습니다

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN 
buildscript { 
    repositories { 
     jcenter() 
    } 

    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     flatDir { 
     dirs 'libs' 
     } 
    } 
} 

apply plugin: 'com.android.application' 

repositories { 

    maven { url "https://bitbucket.org/adscend/androidsdk/raw/master/" } 
} 


dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.adscendmedia.sdk:adscendmedia:2.1.26' 
} 

android { 
    compileSdkVersion 25 
    buildToolsVersion '25.0.0' 

    defaultConfig { 
     targetSdkVersion 25 
    } 

    lintOptions { 
     abortOnError false 
    } 

    buildTypes { 
     debug { 
      jniDebuggable true 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt' 
     } 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt' 

     } 
    } 

} 

내가 나오지 않았어 :

Warning:Exception while processing task java.io.FileNotFoundException: C:\Users\Josh\Documents\AdscendUnityPlugin2.1.3\AdscendUnityPlugin2.1.3\HelloUnity\Export\HelloUnity\build\intermediates\proguard-rules\debug\aapt_rules.txt (The system cannot find the path specified) 

내 Gradle을 파일을 'proguard-rules'폴더를 찾은 것 같습니다.이 오류의 원인은 무엇입니까? 아이디어가 있으십니까?

저는 디버그 빌드에서 proguard를 실행하고 있다는 것을 알고 있습니다. 지금은이 기능을 작동 시키려고합니다.

고맙습니다.

+4

나는 또한 동일한 문제에 직면하고있다. 최신 버전 Gradle 플러그인에서이 문제가 발생할 수 있습니다. 처음으로 나는 이런 종류의 문제를 보았다. Gradle 플러그인 버전 2.3.0으로 Android Studio를 업그레이드 할 때이 문제가 발생합니다. –

+1

동일하지만 아직 해결 방법을 찾지 못했습니다. – vRallev

답변

0

귀하의 proguard-pro.txt는 비어있을 수 있습니다. 이런 종류의 문제가 일찍 발생했습니다. Proguard-pro.txt에서 아래 코드를 추가 한 후에 그것은 나를 위해 일했습니다. 한 번 시도해보십시오. 효과가있을 수 있습니다. 문제 내 경우

# Add project specific ProGuard rules here. 
# By default, the flags in this file are appended to flags specified 
# in D:\Android\adt-bundle-windows-x86-20140702\adt-bundle-windows-x86-20140702\sdk/tools/proguard/proguard-android.txt 
# You can edit the include path and order by changing the proguardFiles 
# directive in build.gradle. 
# 
# For more details, see 
# http://developer.android.com/guide/developing/tools/proguard.html 

# Add any project specific keep options here: 

# If your project uses WebView with JS, uncomment the following 
# and specify the fully qualified class name to the JavaScript interface 
# class: 
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { 
# public *; 
#} 
# Required for GSON 
-keep class com.ptechsolutions.android.authenticrecipe.core.** { *; } 

-keepattributes *Annotation* 
-keepattributes Signature 
-keep class sun.misc.Unsafe { *; } 

-keep class * extends java.util.ListResourceBundle { 
    protected Object[][] getContents(); 
} 

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { 
    public static final *** NULL; 
} 

-keepnames @com.google.android.gms.common.annotation.KeepName class * 
-keepclassmembernames class * { 
    @com.google.android.gms.common.annotation.KeepName *; 
} 

-keepnames class * implements android.os.Parcelable { 
    public static final ** CREATOR; 
} 


-keep class butterknife.** { *; } 
-dontwarn butterknife.internal.** 
-keep class **$$ViewInjector { *; } 

-keepclasseswithmembernames class * { 
    @butterknife.* <fields>; 
} 

-keepclasseswithmembernames class * { 
    @butterknife.* <methods>; 
} 
-dontwarn org.apache.commons.** 
-dontwarn com.google.** 
-dontwarn com.j256.ormlite** 
-dontwarn org.apache.http** 

-keepattributes SourceFile,LineNumberTable 
-keep class com.j256.** 
-keepclassmembers class com.j256.** { *; } 
-keep enum com.j256.** 
-keepclassmembers enum com.j256.** { *; } 
-keep interface com.j256.** 
-keepclassmembers interface com.j256.** { *; } 

-keepattributes Signature 
# GSON Library 
# For using GSON @Expose annotation 
-keepattributes *Annotation* 

# Gson specific classes 
-keep class sun.misc.Unsafe { *; } 
#-keep class com.google.gson.stream.** { *; } 

# Application classes that will be serialized/deserialized over Gson 
-keep class com.google.gson.examples.android.model.** { *; } 

-keepattributes SourceFile, LineNumberTable 

# Google Map 
-keep class com.google.android.gms.maps.** { *; } 
-keep interface com.google.android.gms.maps.** { *; } 

-keep class org.apache.harmony.awt.** { *; } 
-dontwarn org.apache.harmony.awt.** 

-keep class com.github.siyamed.** { *; } 
-dontwarn com.github.siyamed.** 

-keep class com.squareup.picasso.** { *; } 
-dontwarn com.squareup.picasso.** 

-keep class com.squareup.okhttp.** { *; } 
-dontwarn com.squareup.okhttp.** 

-keep class com.sun.mail.** { *; } 
-dontwarn com.sun.mail.** 

-keep class org.codehaus.mojo.** { *; } 
-dontwarn org.codehaus.mojo.** 

-keep class java.awt.datatransfer.** { *; } 
-dontwarn java.awt.datatransfer.** 

-keep class java.nio.file.** { *; } 
-dontwarn java.nio.file.** 

-keep class javax.mail.** { *; } 
-dontwarn javax.mail.** 

-keep class com.theartofdev.edmodo.** { *; } 
-dontwarn com.theartofdev.edmodo.** 

-keep class javax.activation.** { *; } 
-dontwarn javax.activation.** 

-dontskipnonpubliclibraryclassmembers 
1

이이었다 : 하나의 안드로이드 응용 프로그램과 하나의 안드로이드 라이브러리 :
나는 여러 모듈 프로젝트가 있습니다. 나는 안드로이드 스튜디오에서 assembleRelease를 빌드 할 때

, 나는 또한 모든 릴리스 (안 디버그)에 대한 내장되어 있는지 확인해야합니다. enter image description here

을 라이브러리 모듈의 build.gradle 파일에서 :

android { 
    defaultPublishConfig "release" 

도 참조 : 안드로이드 스튜디오에서

는 해제합니다 Build Variant을 설정

27

제 맞춤형 proguard.pro가 비어 있습니다. 프로젝트를 다시 빌드하면 문제가 해결됩니다.

+1

이것은 나를 위해 일했습니다. 고맙습니다. – user1510006

+1

'프로젝트 비우기'가 핵심입니다. – jclova

0

Moudle에서 build 폴더를 삭제하고 다시 작성하십시오.

프로젝트에서 HelloUnity\build\ 폴더