即使使用-keep类,仍然出现错误无法解析的引用

时间:2018-09-21 16:59:25

标签: kotlin android-proguard

在项目中,它在OptionalDependencies.kt中有一个类

package com.xyz.demo

import android.content.Context
import com.facebook.stetho.Stetho
import com.facebook.stetho.okhttp3.StethoInterceptor
import okhttp3.Interceptor

object OptionalDependencies {

    fun initStetho(context: Context) {
        Stetho.initializeWithDefaults(context)
    }

    fun getNetworkInterceptor() : Interceptor?  = StethoInterceptor()

}

和StartActivity.kt

package com.xyz.demo.ui

import com.xyz.demo.OptionalDependencies
……

class StartActivity : AppCompatActivity() {

    private fun initStetho(@ApplicationContext appContext: Context) {

        val interceptor : Interceptor? = 
                OptionalDependencies.getNetworkInterceptor()//<=== any where will get error referring the 
        ……
    }

    ……
}

在build.gradle

buildTypes {
    debug {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }
}

proguard-rules.pro

-keep class com.xyz.demo.** {*;}

还尝试了-keep class com.xyz.demo.OptionalDependencies {*;}

获取错误:   e:/Users/sample/src/main/java/com/xyz/demo/ui/StartActivity.kt: (527, 42): Unresolved reference: OptionalDependencies

如果关闭proguard,它会正常工作。

1 个答案:

答案 0 :(得分:0)

我想在更改proguard-rules.pro之后必须进行“同步”,然后重新构建。