在android studio中构建apk时未找到Aapt_rules.txt
运行proguard生成apk文件时,出现以下错误:在android studio中构建apk时未找到Aapt_rules.txt,android,android-studio,gradle,proguard,Android,Android Studio,Gradle,Proguard,运行proguard生成apk文件时,出现以下错误: 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
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文件:
// 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'
}
}
}
我似乎也找不到文件夹“proguard rules”,是什么导致了这个错误?
有什么想法吗
我知道我正在调试构建中运行proguard,我只是想让它在这一点上工作
谢谢我想你的proguard-pro.txt可能是空白的。我之前有过这种问题。Bu在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
#在此处添加特定于项目的程序规则。
#默认情况下,此文件中的标志附加到指定的标志
#在D:\Android\adt-bundle-windows-x86-20140702\adt-bundle-windows-x86-20140702\sdk/tools/proguard/proguard-Android.txt中
#您可以通过更改文件来编辑包含路径和顺序
#build.gradle中的指令。
#
#有关详细信息,请参阅
# http://developer.android.com/guide/developing/tools/proguard.html
#在此处添加任何特定于项目的保留选项:
#如果您的项目使用带JS的WebView,请取消注释以下内容
#并为JavaScript接口指定完全限定的类名
#类别:
#-keepclassmembers类fqcn.of.javascript.interface.for.webview{
#公众*;
#}
#GSON所需
-保留类com.ptechsolutions.android.authenticrecipe.core.*{*;}
-keepattributes*注释*
-保留署名
-保持类sun.misc.Unsafe{*;}
-keep class*扩展了java.util.ListResourceBundle{
受保护对象[][]getContents();
}
-保持公共类com.google.android.gms.common.internal.safeparcel.SafeParcelable{
公共静态最终***空;
}
-keepnames@com.google.android.gms.common.annotation.KeepName类*
-keepclassmembernames类*{
@com.google.android.gms.common.annotation.KeepName*;
}
-keepnames类*实现android.os.Parcelable{
公共静态最终**创建者;
}
-保持类butterknife.*{*;}
-dontwarn butterknife,内部**
-保持类**$$ViewInjector{*;}
-KeepClassSwithMemberNames类*{
@黄油刀*;
}
-KeepClassSwithMemberNames类*{
@黄油刀*;
}
-dontwarn org.apache.commons**
-dontwarn com.google**
-dontwarn com.j256.ormlite**
-dontwarn org.apache.http**
-keepattributes源文件,LineNumberTable
-保持类com.j256**
-keepclassmembers类com.j256.*{*;}
-保留enum com.j256**
-keepclassmembers enum com.j256.*{*;}
-保留com.j256接口**
-keepclassmembers接口com.j256.*{*;}
-保留署名
#格森图书馆
#用于使用GSON@Expose注释
-keepattributes*注释*
#Gson特定类
-保持类sun.misc.Unsafe{*;}
#-保持类com.google.gson.stream.*{*;}
#将通过Gson进行序列化/反序列化的应用程序类
-保持类com.google.gson.examples.android.model.*{*;}
-keepattributes源文件,LineNumberTable
#谷歌地图
-保留com.google.android.gms.maps类。**{*;}
-保留接口com.google.android.gms.maps.*{*;}
-保持类org.apache.harmony.awt.*{*;}
-dontwarn org.apache.harmony.awt**
-保持类com.github.siyamed.*{*;}
-dontwarn com.github.siyamed**
-保持类com.squareup.picasso.*{*;}
-dontwarn com.squareup.picasso**
-保持类com.squareup.okhttp.*{*;}
-dontwarn com.squareup.okhttp**
-保持类com.sun.mail.*{*;}
-dontwarn com.sun.mail**
-保持类org.codehaus.mojo.*{*;}
-dontwarn org.codehaus.mojo**
-保持类java.awt.datatransfer.*{*;}
-dontwarn java.awt.datatransfer**
-保持类java.nio.file.*{*;}
-dontwarn java.nio.file**
-保持类javax.mail.*{*;}
-dontwarn javax.mail**
-保持类com.theartofdev.edmodo.*{*;}
-dontwarn com.theartofdev.edmodo**
-保持类javax.activation.*{*;}
-dontwarn javax.activation**
-dontskipnonpubliclibraryclassmembers
在我的例子中,问题是:我有一个包含几个模块的项目:一个android应用程序和一个android库 当我在androidstudio中构建
assembleerelease
时,我还必须确保所有内容都是为发布而构建的(而不是调试)
在Android Studio中,将构建变量设置为发布:
在库模块的build.gradle
文件中:
android {
defaultPublishConfig "release"
另见:
在我的情况下,我的自定义proguard.pro为空。
重建项目适合我。删除Moude and Rebuild中的文件夹build
在您的项目中是HelloUnity\build\
folder我也面临同样的问题。可能是这个问题导致了最新版本的Gradle插件。我第一次看到这种问题。当我用Gradle插件版本2.3.0升级Android Studio时,我遇到了这个问题。同样,我还没有找到解决办法,但“清洁项目”是关键。