jberkel/android-plugin — Issue #105: How can I set -keep for Proguard?
Author: DaveGit
Created: 2011-12-21 00:49:13+00:00
State: open

How can I get rid of the warnings and error below. It suggests that I have to set -keep in the Proguard for the descriptor classes.

> android:package-debug
[info] Wrote C:\Users\Dave\my-android-2\target\src_managed\main\scala\myandroid\TR.scala
ProGuard, version 4.6
ProGuard is released under the GNU General Public License. You therefore must ensure that programs that link to it (scala, ...)
carry the GNU General Public License as well. Alternatively, you can apply for an exception with the author of ProGuard.
Reading program directory [C:\Users\Dave\my-android-2\target\scala-2.9.1\classes]
Reading program jar [C:\Users\Dave\.sbt\boot\scala-2.9.1\lib\scala-library.jar](filtered)
Reading library jar [C:\Program Files\Android\android-sdk\platforms\android-14\android.jar]
Note: the configuration keeps the entry point 'myandroid.TypedLayout { scala.Function1 andThen(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'myandroid.TypedLayout { scala.Function1 compose(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcZD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcDD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcFD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcID$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcJD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcVD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcZF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcDF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcFF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcIF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcJF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcVF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcZI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcDI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcFI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcII$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcJI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcVI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcZJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 {
scala.Function1 compose$mcDJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcFJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcIJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcJJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 compose$mcVJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcZD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcDD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcFD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcID$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcJD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcVD$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcZF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcDF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcFF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcIF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcJF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcVF$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcZI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcDI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcFI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcII$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcJI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcVI$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcZJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcDJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcFJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcIJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcJJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: the configuration keeps the entry point 'scala.runtime.AbstractFunction1 { scala.Function1 andThen$mcVJ$sp(scala.Function1); }', but not the descriptor class 'scala.Function1'
Note: there were 52 unkept descriptor classes in kept class members.
You should consider explicitly keeping the mentioned classes
(using '-keep').
Note: You're ignoring all warnings!
Preparing output jar [C:\Users\Dave\my-android-2\target\classes.min.jar]
Copying resources from program directory [C:\Users\Dave\my-android-2\target\scala-2.9.1\classes]
Copying resources from program jar [C:\Users\Dave\.sbt\boot\scala-2.9.1\lib\scala-library.jar] (filtered)
[info] Dexing C:\Users\Dave\my-android-2\target\classes.dex
[error] {file:/C:/Users/Dave/my-android-2/}My Android 2/android:package-debug: java.lang.reflect.InvocationTargetException
[error] Total time: 96 s, completed 21-dec-2011 1:09:35