android - 添加proguard后cordova的相机插件中的java NullPointerException

标签 android cordova ionic-framework android-camera cordova-plugins

我正在尝试将 Proguard 添加到我的 ionic cordova 项目中。除了 camera cordova 插件的 take_picture 方法外,一切正常。 Proguard 规则主要是通过反复试验方法添加的,因此可能会出现我看不到的错误,所以如果有处理过 Proguard 经验的人可以提供帮助,那就太好了。

这是我的混淆规则-

-keep class com.android.vending.licensing.ILicensingService


-keepattributes *Annotation*

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}




-renamesourcefileattribute SourceFile    
-keepattributes SourceFile,LineNumberTable

# Enable proguard with Cordova
-keep class org.apache.** { *; }
-keep public class * extends org.apache.cordova.CordovaPlugin


-keep class com.google.android.gms.dynamite.DynamiteModule$DynamiteLoaderClassLoader { java.lang.ClassLoader sClassLoader; }
-keep class com.google.android.gms.dynamite.descriptors.com.google.android.gms.flags.ModuleDescriptor { int MODULE_VERSION; }
-keep class com.google.android.gms.dynamite.descriptors.com.google.android.gms.flags.ModuleDescriptor { java.lang.String MODULE_ID; }

-keep class org.apache.cordova.CordovaBridge { org.apache.cordova.PluginManager pluginManager; }
-keep class org.apache.cordova.CordovaInterfaceImpl { org.apache.cordova.PluginManager pluginManager; }
-keep class org.apache.cordova.CordovaResourceApi { org.apache.cordova.PluginManager pluginManager; }
-keep class org.apache.cordova.CordovaWebViewImpl { org.apache.cordova.PluginManager pluginManager; }
-keep class org.apache.cordova.ResumeCallback { org.apache.cordova.PluginManager pluginManager; }
-keep class org.apache.cordova.engine.SystemWebViewEngine { org.apache.cordova.PluginManager pluginManager; }

-keep class com.google.gson.internal.UnsafeAllocator { ** theUnsafe; }
-keep class me.leolin.shortcutbadger.ShortcutBadger { ** extraNotification; }
-keep class me.leolin.shortcutbadger.impl.XiaomiHomeBadger { ** messageCount; }
-keep class me.leolin.shortcutbadger.impl.XiaomiHomeBadger { ** extraNotification; }

-dontnote org.apache.harmony.xnet.provider.jsse.NativeCrypto
-dontnote sun.misc.Unsafe

-keep class com.worklight.androidgap.push.** { *; }
-keep class com.worklight.wlclient.push.** { *; }

# Enable proguard with Google libs
-keep class com.google.** { *; }
-dontwarn com.google.common.**
-dontwarn com.google.ads.**



-keep class net.sqlcipher.** { *; }
-dontwarn net.sqlcipher.**

-keep class org.codehaus.** { *; }
-keepattributes *Annotation*,EnclosingMethod

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# Remove debug logs in release build
-assumenosideeffects class android.util.Log {
    public static *** d(...);
}

# These classes contain references to external jars which are not included in the default MobileFirst project.
-dontwarn com.worklight.common.internal.WLTrusteerInternal*
-dontwarn com.worklight.jsonstore.**
-dontwarn org.codehaus.jackson.map.ext.*
-dontwarn com.worklight.androidgap.push.GCMIntentService
-dontwarn com.worklight.androidgap.plugin.WLInitializationPlugin

-keep class  android.**
-dontwarn android.net.SSLCertificateSocketFactory
-dontwarn android.net.http.*
-keepclasseswithmembernames class android.support.v4.content
-dontwarn org.apache.**

#-keep class org.** { *; }

任何帮助都将是巨大的,等待积极的答复。

最佳答案

如果有人还卡在这上面

将此行添加到您的混淆器规则

-keep class com.abc.xyz.BuildConfig { *; }

com.abc.xyz 是你的包名

就是这样......

稍后谢谢我...

快乐编码

关于android - 添加proguard后cordova的相机插件中的java NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47951033/

相关文章:

android - 在android的数组列表中添加项目

android - 从本地 html 文件调用 java 方法

android - ADK闪烁教程: on board LED is always on

javascript - 防止焦点离开表单域

ios - 找不到模块 com.pushwoosh.plugins.pushwoosh.PushNotification

ionic-framework - Ionic 1.3 - iOS 10 beta 6 无法内嵌播放 mp4 视频

angularjs - 如何在 View 中使用 html 元素呈现基本 HTML 代码

android - 日期选择器对话。当我设置最大和最小日期时应用程序崩溃

ios - 是否有解决与cordova-plugin-fcm-with-dependecy-updated 和cordova ios 冲突的解决方法

ionic-framework - ionic2 导航栏后退按钮 css