Proguard混淆代码时,报出以下异常:
Proguard returned with error code 1. See console
Note: there were 169 duplicate class definitions.
Warning: library class android.test.AndroidTestCase extends or implements program class junit.framework.TestCase
Warning: library class android.test.AndroidTestRunner extends or implements program class junit.runner.BaseTestRunner
Warning: library class android.test.InstrumentationTestCase extends or implements program class junit.framework.TestCase
Warning: library class android.test.InstrumentationTestSuite extends or implements program class junit.framework.TestSuite
Warning: library class android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests extends or implements program class junit.framework.TestCase
You should check if you need to specify additional program jars.
Warning: there were 5 instances of library classes depending on program classes.
You must avoid such dependencies, since the program classes will
be processed, while the library classes will remain unchanged.
java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:321)
at proguard.ProGuard.initialize(ProGuard.java:211)
at proguard.ProGuard.execute(ProGuard.java:86)
at proguard.ProGuard.main(ProGuard.java:492)
分析解决:项目的逻辑业务类在进行Junit4测试时引入了Junit4类库,混淆时将其当做了第三方JAR包,因此需要将其排除(Remove from Build Path)。
问题来了:Junit4应该属于系统自带的类库,而混淆只需排除第三方类库,Proguard混淆时是否误将Junit4当做了第三方类库?还是Junit4本身就是第三方类库?望大神指教~~