Adview не обнаруживается при сборке с помощью Ant

Я использую Ant скрипт для создания своего APK с Proguard. Если я вручную создаю свои APK с помощью функции экспорта Eclipse, все работает нормально, но если я использую свой Ant-скрипт, я получаю исключение «не удалось найти вызов 'com.google.ads.Adview'», которое заносится в журнал с Принудительное закрытие.

Это мой файл proguard.cfg, в котором я говорю сохранить com.google.ads:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-libraryjars C:\Workspace\JARs\CWAC-WakefulIntentService-0.4.5.jar;C:\Workspace\JARs\GoogleAdMobAdsSdk-6.0.0.jar;C:\Workspace\JARs\android-support-v4.jar

-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*

-dontwarn **CompatHoneycomb
-dontwarn **CompatHoneycombMR2
-dontwarn **CompatCreatorHoneycombMR2

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.Fragment

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }
-keep public class com.google.ads.** { *; }

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

# This will avoid all the onClick listeners referenced from XML Layouts from being removed
-keepclassmembers class * extends android.app.Activity { 
       public void *(android.view.View); 
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * implements android.os.Parcelable {
    static android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers class **.R$* {
    public static <fields>;
}

-dontwarn android.support.**

Это мой файл build.xml, в котором я создаю APK, а затем копирую его в каталог.

<?xml version="1.0" encoding="UTF-8"?>

<project name="master" default="build">

   <target name="build">
        <ant dir="../Project" antfile="build.xml" inheritAll="false" inheritRefs="false" target="release" />

        <copy todir="../APKs">
            <fileset dir="../Project/bin" includes="*release.apk" />
        </copy> 
    </target>
</project>

ОБНОВИТЬ:

Поработав над этим, я думаю, что эта проблема не связана с Proguard, а связана с Ant скриптом и внешними jar-файлами.


person Kris B    schedule 25.04.2012    source источник
comment
см. stackoverflow.com/q/10259405/857361   -  person Ronnie    schedule 25.04.2012
comment
Спасибо, но не похоже, что в этом посте было найдено решение.   -  person Kris B    schedule 25.04.2012


Ответы (1)


убедитесь, что ваши jar-файлы находятся в каталоге libs вашего проекта. С помощью eclipse вы можете поместить их в другие папки, а затем просто настроить среду сборки. Однако муравей ожидает их в вашей папке libs.

person Matt Wolfe    schedule 25.04.2012
comment
Ага, вот и все. Ух, это было всего полтора дня на выдергивание волос. Спасибо! - person Kris B; 26.04.2012