我编码我的第一个应用程式指定ICS(4.0.3 - 15级)。 我得到的动作条,我认为他们是伟大的。 但我想片段,第一次,我仍然不知道我是否喜欢他们与否。 我目前正在对应用程序并不需要片段,因为它在屏幕上的要求相当undynamic。 标准活动工作的罚款。 最大的不过是,我必须使用PreferenceActivity与PreferencFragment和头。 直偏好定义XML文件,该活动的旧形式,现在已经贬值。 于是,我学会了谷歌的武力使用偏好片段的喜好显示。 (顺便说一下,有没有人想出如何跳过显示的标题。我用了两个用于学习的经验。一个指向一个片段类就已经足够了。但它看起来不好要翻一番,只有一个标题选择.. 。)
我一直在使用模拟器的事,直到大约3天前,一切都在工作。 当我移动测试设备,我能得到的喜好屏幕所显示的标题(PreferenceActivity类)。 但是,当我选择标题(它调用PreferencesFragment类),我收到了“对不起您的应用程序停止”消息。回到模拟器,一切运行正常。它最后我恍然大悟,我是使用ProGuard时我产生我的APK由于各方面的意见,通过标准的活动,除了我的设置活动最一切正常,当我关掉Proguard的驱动,一切工作,包括设置在我Crittercism崩溃报告,当Proguard的是上找不到类,类产生的错误没有发现是内联PreferenceFragment类。
例如,使用报头
android:fragment="com.mycompany.projectname.FragmentPreferences$SettingsFragment"
内嵌类SettingsFragment不是由设备上运行的Android操作系统中。
关闭ProGuard,并将其重新安装APK和上面的头正常工作。 具有或不具有Proguard的,所述PreferenceActivity类FragmentPreferences总是发现和标题显示。 选择显示的标题(SettingsFragment的invokation),当它失败...
我试图-dontoptimize和-dontshrink,但我的应用程序使用ProGuard上仍然不会工作。 我的Proguard的设置标准; 即,产生当我创建使用Eclipse向导(ADT R20 - 最新和最伟大)的新应用程序。 下面是我试图与运行的设置:
在项目的属性:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
target=Google Inc.:Google APIs:15
In proguard-project:
-keepattributes SourceFile, LineNumberTable
-dontshrink
-dontoptimize
所有标准活动(无碎片)正常工作的基本设置。 该-dont的是在试图限制Proguard的只是模糊加入。 当内嵌片段类被称为设置仍会爆破。
目前我正在生成APK使用ProGuard关闭。 当我准备去生产,我想打开它。
(顺便说一句,我感动PreferenceFragment类外部类,他们仍然被调用时Proguard的不工作。)
我已经进入足够多的东西这里还没有问我的问题。 好吧,我这样一个问题关闭下来:
有谁知道要共享的偏好片段类可见所需的正确的Proguard的设置? 如果这个问题延伸到经常使用的片段,那些是什么设置?