Android proguard 问题:路径不能为 null 或空字符串。路径='空'

2024-02-24

设置之前一切正常

minifyEnabled true

and

收缩资源 true

设置这些值后,每当我运行项目时,我都会收到此错误:

Information:Gradle tasks [:app:assembleProdRelease]
Error:path may not be null or empty string. path='null'
Information:BUILD FAILED
Information:Total time: 23.606 secs
Information:1 error
Information:0 warnings
Information:See complete output in console

这个错误是什么意思错误:路径不能为 null 或空字符串。路径='空'这是 build.gradle :

signingConfigs {
            release {
                storeFile file('/home/rishabh/Documents/dekhoJks/release.jks')
                storePassword "XXXXXXX"
                keyAlias "XXXXXXXX"
                keyPassword "XXXXXXXXX"
            }
        }
        buildTypes {
            release {
                minifyEnabled true
                //proguardFiles fileTree(dir: "proguard", include: ["*.pro"]).asList().toArray()
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                shrinkResources true
                signingConfig signingConfigs.release
            }
        }

我试图把我能放进去的每一个该死的东西都放在 proguard.pro 中:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-allowaccessmodification
-keepattributes *Annotation*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-repackageclasses ''

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService

# Explicitly preserve all serialization members. The Serializable interface
# is only a marker interface, so it wouldn't save them.
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

# Preserve all native method names and the names of their classes.
-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

# Preserve static fields of inner classes of R classes that might be accessed
# through introspection.
-keepclassmembers class **.R$* {
  public static <fields>;
}

# Preserve the special static methods that are required in all enumeration classes.
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep public class * {
    public protected *;
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
##---------------End: proguard configuration common for all Android apps ----------

#---------------Begin: proguard configuration for support library  ----------
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontwarn android.support.**
-dontwarn com.google.ads.**
##---------------End: proguard configuration for Gson  ----------

##---------------Begin: proguard configuration for Gson  ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.example.model.** { *; }

##---------------End: proguard configuration for Gson  ----------

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}




-keepclassmembers class android.support.design.internal.BottomNavigationMenuView {
    boolean mShiftingMode;
}

-dontwarn com.fasterxml.**
-dontwarn okio.**
-dontwarn retrofit2.**
-dontwarn com.fasterxml.jackson.databind.**

# Basic ProGuard rules for Firebase Android SDK 2.0.0+
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.apache.**
-dontwarn org.w3c.dom.**

-dontwarn com.firebase.ui.**

-keepattributes Signature

-dontwarn com.googlecode.mp4parser.**
-dontwarn org.mp4parser.aspectj.runtime.reflect.**
-keep class * implements com.coremedia.iso.boxes.Box { *; }
-dontwarn com.coremedia.iso.boxes.**
-dontwarn com.googlecode.mp4parser.authoring.tracks.mjpeg.**
-dontwarn com.googlecode.mp4parser.authoring.tracks.ttml.**

-keep class com.facebook.** {
   *;
}

但仍然无法运行我的应用程序。在我出错的地方有任何帮助。


好的,找到解决方案了。只需替换您的硬编码签名配置:

release {
                storeFile file('/home/rishabh/Documents/dekhoJks/release.jks')
                storePassword "XXXXXXX"
                keyAlias "XXXXXXXX"
                keyPassword "XXXXXXXXX"
            }

而不是创建单独的签名属性 file :

STORE_FILE=/home/XXX/XXX/XXX
STORE_PASSWORD=XXXXXX
KEY_ALIAS=XXXXXXXX
KEY_PASSWORD=XXXXXXXXX

并在你的 gradle 中使用。 希望能帮助到你!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android proguard 问题:路径不能为 null 或空字符串。路径='空' 的相关文章

  • BottomNavigationView - 如何获取选定的菜单项?

    我使用BottomNavigationView来切换片段 如何获取当前选定的菜单项 以防止重新打开片段 BottomNavigationView bottomNavigationView BottomNavigationView findV
  • Android 通知进度条冻结

    这是我正在使用的代码 http pastebin com 3bMCKURu http pastebin com 3bMCKURu 问题是 一段时间后 文件变得更重 通知栏下拉速度变慢 最后它就冻结了 你的通知太频繁了 这就是它冻结的原因 让
  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Android SoundPool 堆限制

    我正在使用 SoundPool 加载多个声音剪辑并播放它们 据我所知 它的功能 100 正确 但在 load 调用期间 我的日志中充斥着以下内容 06 09 11 30 26 110 ERROR AudioCache 23363 Heap
  • 如何更新 Firebase 中的节点密钥?

    如何重命名14 04 2017 node 没有用于重命名节点的 API 您必须获取节点的值 使用新名称将其保存到数据库并删除旧节点
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • RxJava、Proguard 和 sun.misc.Unsafe

    我有以下问题RxJava 1 1 0 使用时Proguard 我没有更改 RxJava 版本或其 pro文件 但更新后OkHttp我无法编译使用Proguard因为我有关于sun misc Unsafe不在场 rxJava pro keep
  • 设置从 Facebook 登录获取用户电子邮件 ID 的权限

    我在用着Facebook 3 0 SDK对于安卓 我必须实施Facebook登录 我正在访问用户的基本信息 例如姓名 用户 ID 但我也想访问用户的电子邮件 我浏览了很多博客和论坛 但不知道该怎么做 我正在使用我自己的 android 按钮
  • Android 原理图内容提供程序库配置?

    Jake Wharton 在最近的一次演讲中提到了这个库 它看起来是避免大量样板文件的好方法 所以我尝试了一下 但没有任何成功 https github com SimonVT schematic https github com Simo
  • 更新到材质 1.2.0 后,材质按钮上缺少圆角半径属性

    这是我的材质按钮代码
  • CookieManager.getInstance().removeAllCookie();不删除所有cookie

    我在应用程序的 onCreate 中调用 CookieManager getInstance removeAllCookie 我遇到了一个奇怪的问题 我看到 GET 请求中传递了意外的 cookie 值 事实上 cookie 值是一个非常非
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Android Studio:无法启动守护进程

    当我尝试在 Android Studio 中导入 gradle 项目时 遇到以下错误 Unable to start the daemon process This problem might be caused by incorrect
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 在 Android 上按下电源按钮时,如何防止先调用 onDestroy() 再调用 onCreate()

    我正在记录每个 onCreate 和 onDestroy 调用 我发现 一旦我单击 Android 上的电源按钮 以及模拟器上的电源按钮 我的活动中就会拨打电话 gt onDestroy gt onCreate 这会杀死我的游戏 然后立即从
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 找到 Android 浏览器中使用的 webkit 版本?

    有没有办法知道某些特定手机上的 Android 浏览器使用的是哪个版本的 webkit 软件 如果有一个您可以浏览以获取该信息的 URL 那就太好了 但任何其他方式也很好 如果你知道 webkit 版本 你就知道 html5 支持多少 至少
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐

  • 为 UIImagePickerController 启用 HDR 选项

    是否可以在我的应用程序中启用 HDR 选项 我以为它会自动存在 我寻找了其他媒体类型 认为 kUTTypeHDRImage 可能是一个选择 但没有这样的运气 它不是额外的源类型 也不能通过cameraCaptureMode使用 ipc so
  • 如何在codeigniter中调用另一个控制器中的一个控制器函数

    我有一个名为home php其中一个函数名为podetails有没有 我想在另一个控制器中调用这个函数user php 可以这样做吗 我读过关于HMVC在CI中 但我想知道是否可以不使用hmvc 要扩展控制器 请按照此操作tutorial
  • 使用异常映射器进行 Openejb Rest 集成测试

    我正在为我的 jax rs 服务编写一些集成测试 其中我有一组异常映射器 因此 在执行给定请求时 我期望基于异常映射器的特定响应代码 问题是在这个环境中运行时我无法调用异常映射器 我的服务应该在我的测试中抛出逻辑异常 Stateless P
  • 如何在 HTML 下拉列表中显示复选框?

    我需要填充一个下拉列表 HTML
  • 引用库中的 ASP.NET 相对路径

    我有一个 ASP NET 网站 我正在其中从 xml 文件加载一些验证规则 此 xml 文件名没有路径信息 被硬编码在库中 我知道硬编码名称不好 但我们就在这个例子中使用它 当我运行该网站时 ASP NET 尝试在source路径 名称硬编
  • PRESTASHOP NGINX + 重写规则

    我一直在为这种组合寻找一个好的解决方案 并遵循以下步骤 http www phamviet net 2012 06 03 prestashop rewrite url on nginx http www phamviet net 2012
  • Android模拟器没有窗框

    我是 Android 开发新手 并且对 Android 模拟器有疑问 它没有窗口框架 我无法将其移动到屏幕上或移动到第二个显示器 这让我很害怕 我尝试用谷歌搜索 但没有找到解决方案 谁能告诉我如何解决这个问题 我有同样的问题 有一个框架 它
  • Spring Boot 中的大小注释返回 400 Bad Request

    我在执行时没有收到消息错误 SizeSpring Boot bean 类中的注释 下面是我的文件 pom xml
  • 我可以在不先查询 EF 实体的情况下更新它吗?

    这是我的场景 我有一条通过 WCF 传递的简单消息 该消息代表现有数据库记录并具有all进行计算所需的数据字段 一旦我完成了计算 我想更新one该数据记录上的字段 目前 尝试简单地设置实体框架版本的所有字段 然后保留对象上下文的状态似乎没有
  • 如何获得两个具有不同绘图的窗口

    当我们有一个带有绘图的窗口时 有没有办法告诉 R 在新窗口中显示新绘图 plot 1 1 dev new plot 2 2 dev set dev prev go back to first title main test dev 1 de
  • 连接 ECONNREFUSED - 节点 js 、 sql

    我在 js 文件中有下一个代码 var mysql require mysql var TEST DATABASE nodejs mysql test var TEST TABLE test var client mysql createC
  • SWIFT 在 Main.storyboard 中定义的 UIImageview 中旋转图像

    我是 SWIFT 新手 正在练习学习 但在某些方面遇到了一些困难 我在 Main storyboard 定义的 UIImageview 中有一个图像 我需要旋转它 我有一个 IBOutlet 定义为 IBOutlet weak var im
  • 如何在 Redux 中为每个实例创建一个存储?

    有时 在 Redux 应用程序中为每个实例创建一个存储会很有用 Redux 的创建者自己创建了一个 Gist 来描述如何实现这一点 https gist github com gaearon eeee2f619620ab7b55673a4e
  • 在 c# 中使用 gmail API 修改消息标签时出现权限不足 [403] 错误

    我正在尝试使用 gmail api 读取 gmail 邮件消息 阅读邮件后 我将删除消息标签 这样我就不需要再次处理它 我能够成功阅读邮件 但是当我尝试修改邮件标签时 service Users Messages Modify mods u
  • 如何将 JSON 转换为字符串数组

    是否可以使用for json path以 JSON 数组格式格式化行 我有一个这样的专栏 Col1 abc def ghi jkl 我想像这样格式化它 Col1 abc def ghi jkl 到目前为止我已经让它看起来像这样 Col1 a
  • 如何从 C# 数组中删除重复项?

    我一直在与一个string C 中从函数调用返回的数组 我可能可以投射到Generic集合 但我想知道是否有更好的方法来做到这一点 可能通过使用临时数组 从 C 数组中删除重复项的最佳方法是什么 您可以使用 LINQ 查询来执行此操作 in
  • Web Api 参数始终为空

    当我使用下面的ajax调用下面的Post方法时 为什么参数总是为空 public IEnumerable
  • UWP 应用程序因多个错误而失败 WACK

    过去 我成功开发了一些 UWP 应用程序并将其部署到 MS Store 目前 在尝试通过 WACK 测试时 遇到了大量意想不到的失败 这些失败是我以前从未遇到过的类型 我在 2017 年 11 月开始了这个特定的项目 从技术上讲 它并没有那
  • 如何检测 Android 设备麦克风中的打击

    如何检测用户何时向设备麦克风吹气 然后 这将用于触发应用程序的某些操作 检测用户何时向麦克风吹气的工作可分为两部分 1 从麦克风获取输入 2 监听吹气声音 向麦克风吹气的噪音 声音由低频声音组成 我们将使用低通滤波器来减少进入麦克风的高频声
  • Android proguard 问题:路径不能为 null 或空字符串。路径='空'

    设置之前一切正常 minifyEnabled true and 收缩资源 true 设置这些值后 每当我运行项目时 我都会收到此错误 Information Gradle tasks app assembleProdRelease Erro