- 在线时间
- 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文件 的错误
y" X$ t8 N/ o f9 f问题概述:
% J0 D5 ^( q, ]. ^' |
- `3 A* W: p9 f, D( h. D在新建Android程序的时候出现以下错误:
n7 a1 C; G! L4 i6 o- b0 E# H" {, X+ |+ v6 i* T7 k+ {" R% g5 ?
找不到 \android-sdk-windows\tools\lib\proguard.cfg文件
( r4 ?% g ?$ c
/ M+ T7 c) v$ c( b- o( E : z( U* G* w% T
]4 B4 e! d+ g, n
原因:- O9 N2 w3 \/ ]6 V. o
5 `1 l! A4 t: O+ P# u5 B& n) dSDK不完整。1 h0 G4 O; V7 T4 K: H6 b
_& s- y5 V# S8 b) o
* d, Z/ j6 X& H/ W% Y# }9 i; t' @$ a% L U, d
解决方法:2 c5 D- x: F* `+ L. N
2 O% Q& u2 s& w4 A5 P+ B1 f方法一$ ?8 | V2 V; ^1 B& T) s8 C$ V
, N" u* B* l4 _' i8 J" V可在 \android-sdk-windows\tools\lib\目录下新建一个proguard.cfg文件
' J# k. N4 O# \, g8 w! r$ s
6 Z" n( b8 C3 v8 y. }然后添下以下内容:
8 z' `( \3 l" \% T1 l. C/ k
# r2 A1 g/ a8 J
^4 {9 G+ i+ @ b8 L" t; N, a( T0 Sproguard.cfg
, N; i3 `$ N/ d- o4 A( Y `-optimizationpasses 5/ T f' @. Y, [6 `& y: C
-dontusemixedcaseclassnames
# P6 @6 k( q1 x9 C6 {! k4 _-dontskipnonpubliclibraryclasses6 T( }" n1 w* E! Q
-dontpreverify
: Q$ y X% D; @2 C' P; X-verbose2 V* q3 T+ z5 `5 A
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*5 y" l6 J# E2 v( D3 J
) n5 M; l: x8 J2 `( a `+ ^- A
-keep public class * extends android.app.Activity( J2 l+ |' v9 |; l% V0 r
-keep public class * extends android.app.Application
- {. U* J: J( u# O6 L7 v5 I-keep public class * extends android.app.Service, g1 t* P1 ]* X) L' r2 b& u
-keep public class * extends android.content.BroadcastReceiver* K7 Q1 c) i8 z4 ^, K
-keep public class * extends android.content.ContentProvider1 u ]9 }, ^: \" h1 h3 b3 z1 D, l3 Y' [
-keep public class com.android.vending.licensing.ILicensingService
8 K# {6 t$ U, p( r0 v3 I6 K3 q% R! i3 |
-keepclasseswithmembernames class * {) {+ W" E0 o9 U: c; O
native <methods>;
2 T' Z3 q' K* L2 G" v+ n/ ~}
7 r% j; R; [1 V; S E- S6 g) H l3 j0 v
-keepclasseswithmembernames class * {
9 s) ~4 |7 v8 Q) P. ` public <init>(android.content.Context, android.util.AttributeSet); N9 i! `% M* g, Y3 K" X5 _
}
4 l& X0 _! _3 ?$ e) \/ {
- K6 X6 D, o. q-keepclasseswithmembernames class * {
+ H' }2 z4 I1 G" T public <init>(android.content.Context, android.util.AttributeSet, int);/ G+ m0 E5 N8 v% q: R2 Q5 b: d
}
0 t6 I9 l4 l( e: i+ \4 Q$ S5 b% e! s
-keepclassmembers enum * {
. o. d/ U* H! B' ? public static **[] values();
( X: n- W& n6 z' f' ~ public static ** valueOf(java.lang.String);
+ Z6 m' b4 j! G6 K; O}
1 U- R0 l6 a. {0 X$ [1 u+ b) A" v/ r# ~0 F3 n- f
-keep class * implements android.os.Parcelable {
; N8 e4 f- f/ q! _$ x. [ public static final android.os.Parcelable$Creator *;
* f" f+ U1 N+ \& ] `* y}
$ L# w6 w; L1 w$ \
) |: x: F7 T8 P) P: T 0 Q4 l: n1 O2 d" q( N" l+ e- E' D# Q
9 @! o4 m! [3 w9 ?; z/ _方法二0 L6 ^2 Q! O/ [, ~
通过Android SDK and AVD Manager更新所有SDK。 |
|