Ответ 1
В моем случае мой пользовательский proguard.pro пуст. Реконструкция проекта для меня работает.
При запуске 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.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 пуст. Реконструкция проекта для меня работает.
Я думаю, что ваш 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
В моем случае проблема заключалась в следующем:
У меня есть проект с несколькими модулями: одно приложение для Android и одна библиотека Android.
Когда я создаю assembleRelease
в Android Studio, я должен также убедиться, что все создано для выпуска (а не для отладки).
В Android Studio установите Build Variant
для выпуска:
В файле build.gradle
библиотечного модуля:
android {
defaultPublishConfig "release"
см. также:
Удалите папку build
в Moudle и перестройте.
В вашем проекте находится папка HelloUnity\build\