gpt4 book ai didi

android - 使用支持库崩溃的 Proguard Android 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:47:13 26 4
gpt4 key购买 nike

我有使用支持库的 Android 应用程序。它被 Proguard 混淆,并在 Home Activity on code 上崩溃:

` @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.home, menu); //ith crashes here
return true;
} `

throw :

java.lang.NoSuchMethodError: android.util.Xml.asAttributeSet at android.support.v7.internal.view.SupportMenuInflater.inflate(Unknown Source) at com.sample.mobile.HomeActivity.onCreateOptionsMenu(Unknown Source)

我启用了 proGuard 使用:

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

在项目.properties

我的配置文件是这样的:

-libraryjars libs
-libraryjars C:\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19\android.jar

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v7.app.** { *; }
-keep interface android.support.v7.app.** { *; }
-keep class android.support.v7.internal.** { *; }
-keep interface android.support.v7.internal.** { *; }
-keep class android.util.Xml..** { *; }

-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.preference.Preference
-keep public class com.android.vending.billing.IInAppBillingService

-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}

我添加了很多东西,因为我正在寻找解决这个问题的方法。

最佳答案

我不确定这是怎么发生的。但是在 proguard 规则中添加以下行可以解决问题。

-保持类 org.xmlpull.v1.** { *;

关于android - 使用支持库崩溃的 Proguard Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22358289/

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