- 在线时间
- 490 小时
- 最后登录
- 2024-2-3
- 注册时间
- 2013-2-28
- 听众数
- 117
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39235 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31237
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1388
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 衰 2020-10-25 11:55 |
|---|
签到天数: 264 天 [LV.8]以坛为家I - 自我介绍
- 内蒙古大学计算机学院
群组: 2013年数学建模国赛备 |
如何解决:新建Android程序的时候发生了找不到 \android-sdk-windows\tools\lib\proguard.cfg文件 的错误3 P! n" g6 z9 l! b! a8 [+ u1 [
问题概述:
8 ?6 P; \% D0 ]9 N" F: x7 D
# ?$ m# @4 @; C# D在新建Android程序的时候出现以下错误:
M: |" B4 r$ E% r& L, R
8 `3 Q# b# n, u! U5 `0 D找不到 \android-sdk-windows\tools\lib\proguard.cfg文件
% g/ @# [' L2 c( Y8 k
% h- H C/ Q" Z3 t( e* _# N
3 g& Q- X) |+ X1 e6 X4 V
4 l. Z7 f4 W/ u2 I原因:5 K1 B. t; k5 B6 k6 W
! y) E$ C* B3 S7 C- LSDK不完整。
( b4 V0 m. }: @' {" Z- O, ^ W5 C4 I& r+ r/ N
+ q, t" g; f" O5 k. _/ G6 l: \; q
' K3 ^; v/ P' j3 u' B2 R
解决方法:
. F) U2 m: j, @: e1 b* T, p; _/ a7 H/ X# Q% S6 ~2 I. f
方法一. M& p$ P4 E9 s6 Z2 S# ?
/ \$ B. D* @- K2 C! X
可在 \android-sdk-windows\tools\lib\目录下新建一个proguard.cfg文件! m: W) p& ~/ o; s& S
/ `. D( B: e5 x& z( k1 H( w* m
然后添下以下内容:
6 o% G7 P2 p8 ^6 J( t% }+ B8 X
$ E; s) w+ o; v1 B7 G: B0 }4 C
" J, b1 D( I$ ` W5 {proguard.cfg4 ]8 t& V: n; D& J x
-optimizationpasses 53 b9 B7 y" k& Q8 q
-dontusemixedcaseclassnames3 C( ]+ } l* N/ V7 [% D9 I1 d p3 C `8 I
-dontskipnonpubliclibraryclasses) d# ?8 J/ F/ e& T, N8 }! R
-dontpreverify+ T: q. f0 o5 F% \% J s
-verbose& [0 p4 z2 i6 U( ?
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+ \( J+ `. u. j: s) [, ]
3 l" \+ y0 t7 C8 [. e5 E-keep public class * extends android.app.Activity. d% \" U6 f! h2 {
-keep public class * extends android.app.Application
6 n8 V0 R7 W# p. j. X8 `4 w-keep public class * extends android.app.Service r' ?3 W% L! A
-keep public class * extends android.content.BroadcastReceiver
2 G7 n, g9 G6 \0 r4 s m-keep public class * extends android.content.ContentProvider
1 I0 R! }& r6 @! p-keep public class com.android.vending.licensing.ILicensingService) U& ]1 u0 A4 A/ B9 S
6 S. v0 O5 n- J& `-keepclasseswithmembernames class * {) e. a {7 K1 Z' r; S+ A$ A
native <methods>;
8 i+ s3 P2 ]4 `9 E}
0 K/ e6 F' E& p2 b- L
) b% S+ n$ N! U2 a# |" M-keepclasseswithmembernames class * {, v( p7 B6 i1 v5 e
public <init>(android.content.Context, android.util.AttributeSet);
, u8 M6 N" t9 \, u9 j! r5 K T}, x* M6 x& n% ^0 j3 o5 U
# H5 S9 A2 s( b) j7 _-keepclasseswithmembernames class * { _3 P: F E7 O2 H6 u
public <init>(android.content.Context, android.util.AttributeSet, int);
# A: K7 X# Z, i4 J; O" ]9 |, }6 e& U}( }: }* ~/ f( c0 Y- L
p* L8 W5 k8 K; |# F4 E
-keepclassmembers enum * {7 e0 w5 e' [) Q% t8 H3 I" K" B9 `
public static **[] values();! B: n/ n# V0 u+ F4 X m4 Q1 ~2 D
public static ** valueOf(java.lang.String);
6 ^/ `% s* L/ d' ^2 d1 c, y}
; p+ p4 D! t j4 ]" [2 i6 u8 _. b+ m9 T3 W T- J+ Z
-keep class * implements android.os.Parcelable {. d" c7 ]# O9 w( g; s0 h/ K, d
public static final android.os.Parcelable$Creator *;2 j* K$ K- f1 C
}7 r9 G! M5 y. ^; |3 \
, B4 W7 M: K. t! M1 f) u) v; ^' Q l9 A# u
1 N$ z+ G- ~% T& r/ D* H3 K
' E- {* P. C; Z m* u8 I9 f8 K$ _' k% k方法二# o. K+ _9 B7 O8 l+ ~- j
通过Android SDK and AVD Manager更新所有SDK。 |
|