在开发有依赖类库的项目时,运行一直没问题,但是到签名打包后一直包错,具体报错内容请看下面。
经过调试发现是由于引用了依赖包里的保护类,直接编译时没有问题,但是打包后会出现访问不到的情况,对引用的保护类改为public权限就可以了。
Process: com.gouku.android.canyin.pos, PID: 8025
java.lang.IllegalAccessError: Interface com.kotlin.base.widgets.OnInputNumberCompleteListener implemented by class com.gouku.android.canyin.pos.ui.fragment.TakeOrderFragment$initProductView$1 is inaccessible (declaration of 'com.gouku.android.canyin.pos.ui.fragment.TakeOrderFragment$initProductView$1' appears in base.apk)
at com.gouku.android.canyin.pos.ui.activity.HomeActivity$takeOrderFragment$2.invoke(HomeActivity.kt:35)
at com.gouku.android.canyin.pos.ui.activity.HomeActivity$takeOrderFragment$2.invoke(HomeActivity.kt:31)
at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131)
at com.gouku.android.canyin.pos.ui.activity.HomeActivity.getTakeOrderFragment(Unknown Source:7)
at com.gouku.android.canyin.pos.ui.activity.HomeActivity.initViews(HomeActivity.kt:42)
at com.kotlin.base.ui.activity.BaseActivity.onCreate(BaseActivity.kt:37)
at android.app.Activity.performCreate(Activity.java:7131)
at android.app.Activity.performCreate(Activity.java:7122)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2882)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3037)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1797)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6642)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)