应用混淆器后 Worklight 推送通知不起作用
Worklight push notification not working after applying proguard
我正在使用 IBM 的 mobilefirst worklight 版本 6.3 进行推送通知。当我不应用 proguard 时,一切正常。
当我在仅订阅推送通知的同时应用混淆器和 运行 构建时,我得到以下异常。
java.lang.RuntimeException: Failed to find the icon resource. Add the icon file under the /res/drawable folder.
我在可绘制文件夹中有 push.png 命名文件。
关于如何在混淆器上处理它的任何建议,或者它是工作灯错误吗?
与另一个第三方库有同样的问题,但当我添加时它已解决 keep class com.classname.** {*;}
我对 worklight 也做了同样的事情 -keep class com.worklight.** {*;}
但它没有用。
下面是我用过的proguard配置
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keep class com.google.gson.Gson
-keep class com.billdesk.** {*;}
-keep public class com.worklight.** {*;}
-dontwarn com.worklight.**
-dontwarn com.auth0.jwt.**
-dontwarn com.squareup.picasso.**
-dontwarn com.viewpagerindicator.**
-dontwarn org.bouncycastle.**
MobileFirst 6.3 不正式支持使用 Proguard 进行混淆。
即便如此,使用 Proguard 混淆的 Android 项目在大多数情况下都可以正常工作而不会出现问题。
我无法重现您 mention.I 在使用 Proguard 混淆后测试 MFP 6.3 Eventsource 通知示例并且应用程序运行良好的问题。没有看到运行时异常。
Android SDK Tools : 25.1.1
Target API Level : 19
Proguard version : 4.7
开始于:
- 确保 push.png 存在于所有可绘制文件夹中,而不仅仅是通用文件夹。
- 检查 proguard 混淆日志以查看 "push.png" 是否正在所有文件夹中处理并查找错误消息。
修改proguard配置以包含-
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepattributes InnerClasses
-keep class **.R
-keep class **.R$* {
<fields>;
}
-keep class org.apache.cordova.** { *; }
-keep public class * extends org.apache.cordova.CordovaPlugin
-keep class com.worklight.androidgap.push.** { *; }
-keep class com.worklight.wlclient.push.** { *; }
-keep class com.worklight.common.security.AppAuthenticityToken { *; }
-keep class com.google.** { *;}
-dontwarn com.google.common.**
-dontwarn com.google.ads.**
-dontwarn com.worklight.androidgap.push.GCMIntentService
-dontwarn com.worklight.androidgap.plugin.WLInitializationPlugin
-dontwarn com.worklight.wlclient.push.GCMIntentService
-dontwarn org.bouncycastle.**
-dontwarn com.worklight.nativeandroid.common.WLUtils
-dontwarn com.worklight.wlclient.push.WLBroadcastReceiver
-dontwarn com.worklight.wlclient.push.common.*
-dontwarn com.worklight.wlclient.api.WLPush
我正在使用 IBM 的 mobilefirst worklight 版本 6.3 进行推送通知。当我不应用 proguard 时,一切正常。 当我在仅订阅推送通知的同时应用混淆器和 运行 构建时,我得到以下异常。
java.lang.RuntimeException: Failed to find the icon resource. Add the icon file under the /res/drawable folder.
我在可绘制文件夹中有 push.png 命名文件。 关于如何在混淆器上处理它的任何建议,或者它是工作灯错误吗?
与另一个第三方库有同样的问题,但当我添加时它已解决 keep class com.classname.** {*;}
我对 worklight 也做了同样的事情 -keep class com.worklight.** {*;}
但它没有用。
下面是我用过的proguard配置
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-keep class com.google.gson.Gson
-keep class com.billdesk.** {*;}
-keep public class com.worklight.** {*;}
-dontwarn com.worklight.**
-dontwarn com.auth0.jwt.**
-dontwarn com.squareup.picasso.**
-dontwarn com.viewpagerindicator.**
-dontwarn org.bouncycastle.**
MobileFirst 6.3 不正式支持使用 Proguard 进行混淆。 即便如此,使用 Proguard 混淆的 Android 项目在大多数情况下都可以正常工作而不会出现问题。
我无法重现您 mention.I 在使用 Proguard 混淆后测试 MFP 6.3 Eventsource 通知示例并且应用程序运行良好的问题。没有看到运行时异常。
Android SDK Tools : 25.1.1
Target API Level : 19
Proguard version : 4.7
开始于:
- 确保 push.png 存在于所有可绘制文件夹中,而不仅仅是通用文件夹。
- 检查 proguard 混淆日志以查看 "push.png" 是否正在所有文件夹中处理并查找错误消息。
修改proguard配置以包含-
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepattributes InnerClasses
-keep class **.R
-keep class **.R$* {
<fields>;
}
-keep class org.apache.cordova.** { *; }
-keep public class * extends org.apache.cordova.CordovaPlugin
-keep class com.worklight.androidgap.push.** { *; }
-keep class com.worklight.wlclient.push.** { *; }
-keep class com.worklight.common.security.AppAuthenticityToken { *; }
-keep class com.google.** { *;}
-dontwarn com.google.common.**
-dontwarn com.google.ads.**
-dontwarn com.worklight.androidgap.push.GCMIntentService
-dontwarn com.worklight.androidgap.plugin.WLInitializationPlugin
-dontwarn com.worklight.wlclient.push.GCMIntentService
-dontwarn org.bouncycastle.**
-dontwarn com.worklight.nativeandroid.common.WLUtils
-dontwarn com.worklight.wlclient.push.WLBroadcastReceiver
-dontwarn com.worklight.wlclient.push.common.*
-dontwarn com.worklight.wlclient.api.WLPush