首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Upnp/Upnp程序保护

Android Upnp/Upnp程序保护
EN

Stack Overflow用户
提问于 2015-11-22 11:17:03
回答 3查看 1.1K关注 0票数 12

我使用固守创建了应用程序,运行良好,但是当我创建发布版本时,我得到了以下消息,渲染器上没有播放:

代码语言:javascript
复制
   11-22 16:24:53.341  20172-20172/? I/RendererCommand﹕ TrackMetadata : TrackMetadata [id=1, title=IMG-20151120-WA0007, artist=, genre=, artURI=res=http://192.168.1.4:8089/1.jpg, itemClass=object.item.imageItem]
11-22 16:24:53.345  20172-20172/? V/RendererCommand﹕ Resume
11-22 16:24:53.351  20172-20301/? W/RendererCommand﹕ Fail to stop ! Error: Current state of service prevents invoking that action. Error writing request message. Can't transform message payload: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType. (HTTP response was: 500 Internal Server Error)
11-22 16:24:53.351  20172-20301/? I/RendererCommand﹕ Set uri to http://192.168.1.4:8089/1.jpg
11-22 16:24:53.353  20172-20386/? D/RendererCommand﹕ Update state !
11-22 16:24:53.354  20172-20264/? W/RendererCommand﹕ Fail to set URI ! Error: Current state of service prevents invoking that action. Error writing request message. Can't transform message payload: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType. (HTTP response was: 500 Internal Server Error)
11-22 16:24:53.354  20172-20262/? W/RendererCommand﹕ Fail to get position info ! Error: Current state of service prevents invoking that action. Error writing request message. Can't transform message payload: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType. (HTTP response was: 500 Internal Server Error)
11-22 16:24:54.354  20172-20386/? D/RendererCommand﹕ Update state !

以下是我的卫兵企业:

代码语言:javascript
复制
-dontoptimize
-dontshrink
-dontskipnonpubliclibraryclasses
-dontpreverify
-allowaccessmodification
-verbose

-dontwarn org.fourthline.cling.**
-dontwarn org.seamless.**
-dontwarn org.eclipse.jetty.**
-dontwarn android.support.v4.app.**
-dontwarn android.support.design.widget.**

-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
-keep class javax.** { *; }
-keep class org.** { *; }
-keep class org.fourthline.cling.** { *;}
-keep class org.seamless.** { *;}
-keep class org.eclipse.jetty.** { *;}
-keep class org.slf4j.** { *;}
-keep class javax.servlet.** { *;}

-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);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}


-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }

-keepattributes *Annotation*
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-04 06:01:01

好的,在阅读了前卫手册,并进行了无数次的攻击和试验之后,我终于修改了上面的预保护文件的最后一行。

-keepattributes注释,InnerClasses,签名

每件事都很好

从护卫处

指定类、字段或方法的一般签名。编译器可能需要此信息才能正确编译使用已编译库中的泛型类型的类。代码可以通过反射访问此签名。

问题是反映出来的

票数 8
EN

Stack Overflow用户

发布于 2015-12-03 08:14:54

Pro卫兵正在腐蚀(即触摸库中的类/接口),您需要防止这种情况.

您可以启动这里,前提是Proguard碰到Jetty/Http堆栈中的一些相关网络时有问题,我猜是从错误的内容来看的。疯狂的猜测是,就好像http实体或主体不能作为实现适当的接口来处理.你想要配置程序保护以避免库中的所有接口,并且在你的程序保护程序中没有任何“保持接口”指令.

例如,您是在告诉proguard不要碰“org.eclipse.jetty”中的任何接口。你不会那么做的,你可能会想这样做。

请参阅这里

扫描程序保护手册,以便-keepinterface与在库中实现服务器/http连接的jetty包一起使用。

  1. 了解更多关于库中内部客户端服务器和内部网络堆栈实现的“cling”包/接口(看起来它在某些协议(如http )上实现了C连接的jetty )。
  2. 在lib的jar/归档文件上构建一个包列表,以与proguard配置进行比较。要特别注意jetty的服务器实现"jar -tf my.jar sort sort uniq“之类的接口。
  3. 看看在'mapping.txt‘和'seeds.txt’在此解释中,有什么是被Pro卫兵混淆的。将这些包的名称与这些包的列表相交&上面组装的列表,您不想让这些包的名称被弄乱。“种子”应该包含您的跳槽类/接口。“地图”不应该!
票数 2
EN

Stack Overflow用户

发布于 2015-12-03 10:01:28

也许您可以尝试在包-keepclassmembers-keep class之外添加org.fourthline.cling,如下所示:

代码语言:javascript
复制
-keep class org.fourthline.cling.** { *;}
-keepclassmembers class org.fourthline.cling.** { *;}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33854141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档