7
7
8
8
import java .io .IOException ;
9
9
import java .util .ArrayList ;
10
+ import java .util .HashMap ;
11
+ import java .util .List ;
12
+ import java .util .Map ;
10
13
11
14
12
15
public class AVD {
@@ -48,8 +51,8 @@ public class AVD {
48
51
static ArrayList <String > badList ;
49
52
// static ArrayList<String> skinList;
50
53
51
- private String [] preferredAbi = new String [ 50 ] ;
52
- private static ArrayList <String > abiList = new ArrayList <>();
54
+ private Map < String , String > preferredAbi = new HashMap <>( 30 ) ;
55
+ private static List <String > abiList = new ArrayList <>();
53
56
54
57
/** Default virtual device used by Processing. */
55
58
static public final AVD defaultAVD =
@@ -66,6 +69,7 @@ public AVD(final String name, final String target) {
66
69
67
70
private void initializeAbiList () {
68
71
if (abiList .size () == 0 ) {
72
+ //The order in this list determines the preference of one abi over the other
69
73
abiList .add ("armeabi" );
70
74
abiList .add ("x86" );
71
75
abiList .add ("x86_64" );
@@ -165,11 +169,10 @@ protected boolean create(final AndroidSDK sdk) throws IOException {
165
169
abi = m [1 ];
166
170
167
171
if (api != null && abi != null ) {
168
- int index = Integer .parseInt (api );
169
- if (preferredAbi [index ] == null ) {
170
- preferredAbi [index ] = abi ;
171
- } else if (abiList .indexOf (preferredAbi [index ]) < abiList .indexOf (abi )) {
172
- preferredAbi [index ] = abi ;
172
+ if (preferredAbi .get (api ) == null ) {
173
+ preferredAbi .put (api , abi );
174
+ } else if (abiList .indexOf (preferredAbi .get (api )) < abiList .indexOf (abi )) {
175
+ preferredAbi .put (api , abi );
173
176
}
174
177
api = null ;
175
178
abi = null ;
@@ -178,7 +181,7 @@ protected boolean create(final AndroidSDK sdk) throws IOException {
178
181
}
179
182
} catch (InterruptedException e ) {}
180
183
181
- if (preferredAbi [ Integer . parseInt (AndroidBuild .sdkVersion )] == null ) {
184
+ if (preferredAbi . get (AndroidBuild .sdkVersion ) == null ) {
182
185
return false ;
183
186
}
184
187
@@ -189,7 +192,7 @@ protected boolean create(final AndroidSDK sdk) throws IOException {
189
192
"-t" , target ,
190
193
"-c" , DEFAULT_SDCARD_SIZE ,
191
194
"-s" , DEFAULT_SKIN ,
192
- "--abi" , preferredAbi [ Integer . parseInt (AndroidBuild .sdkVersion )]
195
+ "--abi" , preferredAbi . get (AndroidBuild .sdkVersion )
193
196
};
194
197
195
198
// Set the list to null so that exists() will check again
0 commit comments