启用minifyEnabled后,在我的gradle文件中启用ḿy应用程序继续崩溃。我已经搜索了很多,但我觉得与Proguard不太适应,我也不确定问题出在哪里。也许我需要添加更多的keep in proguard rules pro?
build.gradle
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
前进的规则。赞成的意见
##---------------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
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
# Prevent proguard from stripping interface information from TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
##---------------End: proguard configuration for Gson ----------
-keep class com.sterbsociety.** {*;}
-keep class package.model.* {*;}
-keep class androidx.recyclerview.widget.RecyclerView.** {*;}
-keepattributes *Annotation*,Signature, InnerClasses
错误:
java.lang.IllegalStateException: ViewHolder views must not be attached when created. Ensure that you are not passing 'true' to the attachToRoot parameter of LayoutInflater.inflate(..., boolean attachToRoot)
at androidx.recyclerview.widget.RecyclerView$a.createViewHolder(:6)
at androidx.recyclerview.widget.RecyclerView$p.a(:60)
at androidx.recyclerview.widget.RecyclerView$p.a(:26)
at androidx.recyclerview.widget.RecyclerView$p.c(:2)
有什么想法吗?提前谢谢。
该错误可能与proguard无关,但与如何为ViewHolder扩展布局有关。尝试确保使用false
参数对布局进行充气,如下所示:
@NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
Context context = viewGroup.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
// Inflate the custom layout, use false.
View contactView = inflater.inflate(R.layout.item_of_yours, viewGroup, false);
...
return viewHolder;
}
在这个问题上我需要一些帮助。幸好我得到了这个错误。我没有做任何修改,也找不到解决方案...这里有一个错误。 IllegalStateException:创建ViewHolder视图时不能附加。确保您没有将'true'传递给位于Android.support.v7.widget.recyterView$adapter.createViewWholder(recycerview.java:6687)和
我正在尝试在Swiftui2.0Xcode 12.4中创建一个WebView视图,但它太新了,我找不到答案和最佳实践的好例子。对于下面的代码,我得到以下错误。 类型SwiftUIWebView不符合协议UIView表示 此外,配置设置已更改,我无法启用。正确地允许使用JavaScript。尝试将其添加到“perfs”会触发一个错误,抱怨不喜欢Bool。
视图概述 视图作为MVC模式中的终端环节,在web编程中负责dom结构的展示。grace 使用 php作为“天然模板“,您不必再去学习枯燥无聊的模板语法,系统更不必浪费资源去完成复杂的解析工作! 视图文件创建及命名规则 视图文件命名 : 1、控制器名称_方法名称.php //此种命名系统会进行自动展示 2、视图名称.php //需要手动调用 视图文件位置 : /分组文件夹/views/对应视图文件
问题内容: 仅在不存在视图的情况下如何创建视图。如果确实存在,我想删除视图并重新定义它。我也不要警告或错误。 问题答案: 您将自己踢: 详细信息在这里。;-)
我正在尝试用robolectric和roboguice进行测试。我成功地注入和测试了类,但当我尝试测试活动时,似乎无法在测试环境中创建视图对象 我得到以下错误 testAttemptsLoginWhenSignInButtonIsClicked(com.clearc2.HomeActivityTest)经过的时间:2.234秒