【问题标题】:can't find referenced method 'android.app.RemoteInput[] getRemoteInputs()' in class android.app.Notification$Action在类 android.app.Notification$Action 中找不到引用的方法 'android.app.RemoteInput[] getRemoteInputs()'
【发布时间】:2014-08-26 14:45:21
【问题描述】:

在过去的 1 周内,我对这个问题有点困惑。我正在尝试导出我的 android 应用程序以进行最终版本,但它在导出时出现以下错误。

Proguard returned with error code 1. See console
[2014-08-26 19:55:11 - ] Note: there were 1281 duplicate class definitions.
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced method 'android.app.RemoteInput[] getRemoteInputs()' in class android.app.Notification$Action
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced method 'android.os.Bundle getExtras()' in class android.app.Notification$Action
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced class android.app.Notification$Action$Builder
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced class android.app.Notification$Action$Builder
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced class android.app.Notification$Action$Builder
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced class android.app.Notification$Action$Builder
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced class android.app.Notification$Action$Builder
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced method 'java.lang.String getGroup()' in class android.app.Notification
[2014-08-26 19:55:11 - ] Warning: android.support.v4.app.NotificationCompatApi20: can't find referenced method 'java.lang.String getSortKey()' in class android.app.Notification

我在我的 proguard-project.txt 文件中使用以下条目。

-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}
-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault

-keepclassmembers class * {
@com.google.api.client.util.Key <fields>;
}
-keep class android.support.v4.** { *; }
-dontwarn **CompatHoneycomb
-dontwarn javax.jdo.**
-dontwarn com.google.api.client.extensions.android.**
-dontwarn com.google.api.client.googleapis.extensions.android.gms.**

# Needed by google-api-client-android when linking against an older platform version

-dontwarn com.google.api.client.googleapis.extensions.android.**

-injars lib/android-support-v4.jar
-injars lib/gcm.jar
-injars lib/google-api-client-1.18.0-rc.jar
-injars lib/google-api-client-android-1.18.0-rc.jar
-injars lib/google-http-client-1.18.0-rc.jar
-injars lib/google-http-client-android-1.18.0-rc.jar
-injars lib/google-http-client-gson-1.18.0-rc.jar
-injars lib/google-http-client-jackson2-1.18.0-rc.jar
-injars lib/google-http-client-jdo-1.18.0-rc.jar
-injars lib/google-oauth-client-1.18.0-rc.jar
-injars lib/gson-2.1.jar
-injars lib/jackson-core-2.1.3.jar
-injars lib/jsr305-1.3.9.jar

# Needed by google-play-services when linking against an older platform version

-dontwarn com.google.android.gms.**

如果我在我的 proguard-project.txt 文件中使用以下内容,我可以从 Eclipse 成功导出我的 .apk 文件。但是当我在设备中安装和运行该应用程序时,它崩溃了。

-keep class android.support.v4.** { *; }   
-dontwarn android.support.v4.**
-dontwarn javax.activation.**
-dontwarn javax.security.**
-dontwarn java.awt.**
-libraryjars <java.home>/lib/rt.jar
-keep class javax.** {*;}
-keep class com.sun.** {*;}
-keep class myjava.** {*;}
-keep class org.apache.harmony.** {*;}
-keep public class Mail {*;}        
-dontshrink
-dontwarn org.mockito.**
-dontwarn sun.reflect.**
-dontwarn android.test.**
-keep class javax.ws.rs.** { *; }
-dontwarn com.fasterxml.jackson.**
-dontwarn org.xmlpull.v1.**
-dontwarn javax.jdo.**
-dontwarn com.google.api.client.googleapis.extensions.android.gms.**

请帮助我如何解决这个问题。我不能在不使用 proguard 配置的情况下直接导出 .apk 文件吗?谢谢。如果我需要提供更多信息,请告诉我。

【问题讨论】:

  • 我不知道为什么这个问题被否决了。我知道它与已被多次询问的 proguard 错误有关,但我得到的错误没有在任何地方提及和回答。
  • 感觉您有一些库需要比您目前使用的更新版本的 support-v4 JAR。
  • 但是当我直接从 eclipse 运行时,我的应用程序在设备中执行得很好。
  • 那么也许您可以考虑检查 LogCat 并在您崩溃的情况下确定您崩溃的原因。
  • 如何获取崩溃报告?当我在设备中手动安装 .apk 文件时。当我直接从 Eclipse 运行时,它不会崩溃。谢谢

标签: java android eclipse proguard


【解决方案1】:

也许有些支持 v4 类或接口被混淆了,我试过了,它可以工作

-dontwarn android.support.v4.**     
-keep class android.support.v4.** { *; }   
-keep interface android.support.v4.app.** { *; }   
-keep public class * extends android.support.v4.**   
-keep public class * extends android.app.Fragment 

【讨论】:

    【解决方案2】:

    我通过这种方式成功解决了错误。

    我的 project.properties 文件内容

    proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt:proguard-google-api-client.txt
    
    # Project target.
    target=android-19
    android.library.reference.1=../appcompat_v7
    

    我的 proguard-project.txt 内容

    -keepclassmembers class fqcn.of.javascript.interface.for.webview {
    public *;
    }
    
    # added to prevent runtime errors (kazsato)
    -keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
    }
    
    -dontwarn javax.jdo.**
    

    我的 proguard-google-api-client.txt

    -keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault
    
    -keepclassmembers class * {
    @com.google.api.client.util.Key <fields>;
    }
    
    # Needed by google-http-client-android when linking against an older platform version
    
    -dontwarn com.google.api.client.extensions.android.**
    -dontwarn com.google.api.client.googleapis.extensions.android.gms.**
    
    # Needed by google-api-client-android when linking against an older platform version
    
    -dontwarn com.google.api.client.googleapis.extensions.android.**
    
    # Needed by google-play-services when linking against an older platform version
    
    -dontwarn com.google.android.gms.**
    

    如果这些信息对某人有所帮助,我会很高兴。我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2014-09-28
      • 1970-01-01
      • 2013-05-16
      • 2023-03-10
      • 1970-01-01
      • 2016-09-30
      相关资源
      最近更新 更多