代码之家  ›  专栏  ›  技术社区  ›  lannyf

即使使用-keep类,仍然有错误未解析的引用

  •  0
  • lannyf  · 技术社区  · 7 年前

    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

    如果关掉程序,它就可以正常工作。

    1 回复  |  直到 7 年前
        1
  •  0
  •   lannyf    7 年前

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