gpt4 book ai didi

android - Proguard 与使用(兼容性)库的 android 项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:42 27 4
gpt4 key购买 nike

我正在尝试通过 Package Explorer Export > Export Android Application 中的内置 Proguard 支持来使用 Proguard。主项目正在使用一个库项目,该库项目又使用 android 兼容性库,它本身也使用这个兼容性库。基本上是这样的:

基础图书馆项目 基础 Activity 库:android-support-v4.jar主项目 使用库 BaseLibraryProject 库:android-support-v4.jar

此应用在设备和模拟器上均运行良好。然而,Proguard 会发出大量警告并以代码 1 存在。

这是 Proguard 相关 list 的最后一部分:

[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView$OnQueryTextListener
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView$OnQueryTextListener
[2012-04-09 14:19:49 - MainProject] Warning: android.support.v4.widget.SearchViewCompatHoneycomb$1: can't find referenced class android.widget.SearchView
[2012-04-09 14:19:49 - MainProject] Warning: there were 131 unresolved references to classes or interfaces.
[2012-04-09 14:19:49 - MainProject] You may need to specify additional library jars (using '-libraryjars').
[2012-04-09 14:19:49 - MainProject] Warning: there were 29 unresolved references to program class members.
[2012-04-09 14:19:49 - MainProject] Your input classes appear to be inconsistent.
[2012-04-09 14:19:49 - MainProject] You may need to recompile them and try again.
[2012-04-09 14:19:49 - MainProject] Alternatively, you may have to specify the option
[2012-04-09 14:19:49 - MainProject] '-dontskipnonpubliclibraryclassmembers'.
[2012-04-09 14:19:49 - MainProject] java.io.IOException: Please correct the above warnings first.

如您所见:它找不到兼容库。

这是包含 -libraryjars 和 -dontskipnonpubliclibraryclassmembers 的 proguard.cfg 文件的开头:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-libraryjars libs/android-support-v4.jar

没有区别。我尝试了将库添加到 BaseLibrary 项目/MainProject、完全限定路径名的各种组合。似乎没有任何帮助。

proguard 上的大多数 stackoverflow 问题似乎都与设置 Ant 有关。知道可能导致此问题的原因以及如何让 Proguard 处理这个使用多个库的项目吗?

提前致谢

最佳答案

ADT 17 的发布为 Proguard 的工作方式带来了许多改进,包括更好的默认设置,我认为这应该可以解决您的支持库问题。

参见 - http://tools.android.com/recent/proguardimprovements

Eclipse(项目.properties)

从 ADT 17 开始,默认的 project.properties 文件现在包括以下引用标准 Proguard 配置文件 (proguard-android.txt) 和项目特定 Proguard 配置文件 (proguard-project.txt) 的行 ...

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

我建议创建一个新的 Android 项目以查看其布局并使用这些新文件。由于 Proguard 和默认配置的改进,您的应用将长期受益。

更新

Gradle (build.gradle)

以下将同时使用默认的标准混淆器配置和本地项目混淆器规则。

android {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}

关于android - Proguard 与使用(兼容性)库的 android 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10073244/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com