| // Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| package com.android.tools.r8.androidapi; |
| |
| import com.android.tools.r8.graph.DexItemFactory; |
| import com.android.tools.r8.graph.DexType; |
| import com.android.tools.r8.utils.AndroidApiLevel; |
| import com.android.tools.r8.utils.InternalOptions; |
| import com.android.tools.r8.utils.SetUtils; |
| import java.util.Set; |
| |
| /** |
| * Provides a mapping of API levels to exceptions introduced at that API level. |
| * |
| * <p>The mapping is only provided up to excluding the API level 21 (Android L) at which point the |
| * verification issue for unresolved exception types was fixed. |
| * |
| * <p>See b/153514654 and b/131349148. |
| * |
| * <p>See GenerateAvailableApiExceptions.main in tests module for generating the buildMap function. |
| */ |
| public class AvailableApiExceptions { |
| |
| private final Set<DexType> exceptions; |
| |
| public AvailableApiExceptions(InternalOptions options) { |
| assert options.getMinApiLevel().isLessThan(AndroidApiLevel.L); |
| exceptions = build(options.itemFactory, options.getMinApiLevel()); |
| } |
| |
| public boolean canCauseVerificationError(DexType type) { |
| return !exceptions.contains(type); |
| } |
| |
| /** The content of this method can be regenerated with GenerateAvailableExceptions.main. */ |
| public static Set<DexType> build(DexItemFactory factory, AndroidApiLevel minApiLevel) { |
| Set<DexType> types = SetUtils.newIdentityHashSet(333); |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.B)) { |
| types.add(factory.createType("Landroid/app/PendingIntent$CanceledException;")); |
| types.add(factory.createType("Landroid/content/ActivityNotFoundException;")); |
| types.add(factory.createType("Landroid/content/IntentFilter$MalformedMimeTypeException;")); |
| types.add(factory.createType("Landroid/content/ReceiverCallNotAllowedException;")); |
| types.add(factory.createType("Landroid/content/pm/PackageManager$NameNotFoundException;")); |
| types.add(factory.createType("Landroid/content/res/Resources$NotFoundException;")); |
| types.add(factory.createType("Landroid/database/CursorIndexOutOfBoundsException;")); |
| types.add(factory.createType("Landroid/database/SQLException;")); |
| types.add(factory.createType("Landroid/database/StaleDataException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteAbortException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteConstraintException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteDatabaseCorruptException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteDiskIOException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteDoneException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteFullException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteMisuseException;")); |
| types.add(factory.createType("Landroid/net/ParseException;")); |
| types.add(factory.createType("Landroid/opengl/GLException;")); |
| types.add(factory.createType("Landroid/os/BadParcelableException;")); |
| types.add(factory.createType("Landroid/os/DeadObjectException;")); |
| types.add(factory.createType("Landroid/os/ParcelFormatException;")); |
| types.add(factory.createType("Landroid/os/RemoteException;")); |
| types.add(factory.createType("Landroid/provider/Settings$SettingNotFoundException;")); |
| types.add(factory.createType("Landroid/test/AssertionFailedError;")); |
| types.add(factory.createType("Landroid/test/ComparisonFailure;")); |
| types.add(factory.createType("Landroid/util/AndroidException;")); |
| types.add(factory.createType("Landroid/util/AndroidRuntimeException;")); |
| types.add(factory.createType("Landroid/util/TimeFormatException;")); |
| types.add(factory.createType("Landroid/view/InflateException;")); |
| types.add(factory.createType("Landroid/view/Surface$OutOfResourcesException;")); |
| types.add(factory.createType("Landroid/view/SurfaceHolder$BadSurfaceTypeException;")); |
| types.add(factory.createType("Landroid/view/WindowManager$BadTokenException;")); |
| types.add(factory.createType("Landroid/widget/RemoteViews$ActionException;")); |
| types.add(factory.createType("Ljava/io/CharConversionException;")); |
| types.add(factory.createType("Ljava/io/EOFException;")); |
| types.add(factory.createType("Ljava/io/FileNotFoundException;")); |
| types.add(factory.createType("Ljava/io/IOException;")); |
| types.add(factory.createType("Ljava/io/InterruptedIOException;")); |
| types.add(factory.createType("Ljava/io/InvalidClassException;")); |
| types.add(factory.createType("Ljava/io/InvalidObjectException;")); |
| types.add(factory.createType("Ljava/io/NotActiveException;")); |
| types.add(factory.createType("Ljava/io/NotSerializableException;")); |
| types.add(factory.createType("Ljava/io/ObjectStreamException;")); |
| types.add(factory.createType("Ljava/io/OptionalDataException;")); |
| types.add(factory.createType("Ljava/io/StreamCorruptedException;")); |
| types.add(factory.createType("Ljava/io/SyncFailedException;")); |
| types.add(factory.createType("Ljava/io/UTFDataFormatException;")); |
| types.add(factory.createType("Ljava/io/UnsupportedEncodingException;")); |
| types.add(factory.createType("Ljava/io/WriteAbortedException;")); |
| types.add(factory.createType("Ljava/lang/AbstractMethodError;")); |
| types.add(factory.createType("Ljava/lang/ArithmeticException;")); |
| types.add(factory.createType("Ljava/lang/ArrayIndexOutOfBoundsException;")); |
| types.add(factory.createType("Ljava/lang/ArrayStoreException;")); |
| types.add(factory.createType("Ljava/lang/AssertionError;")); |
| types.add(factory.createType("Ljava/lang/ClassCastException;")); |
| types.add(factory.createType("Ljava/lang/ClassCircularityError;")); |
| types.add(factory.createType("Ljava/lang/ClassFormatError;")); |
| types.add(factory.createType("Ljava/lang/ClassNotFoundException;")); |
| types.add(factory.createType("Ljava/lang/CloneNotSupportedException;")); |
| types.add(factory.createType("Ljava/lang/EnumConstantNotPresentException;")); |
| types.add(factory.createType("Ljava/lang/Error;")); |
| types.add(factory.createType("Ljava/lang/Exception;")); |
| types.add(factory.createType("Ljava/lang/ExceptionInInitializerError;")); |
| types.add(factory.createType("Ljava/lang/IllegalAccessError;")); |
| types.add(factory.createType("Ljava/lang/IllegalAccessException;")); |
| types.add(factory.createType("Ljava/lang/IllegalArgumentException;")); |
| types.add(factory.createType("Ljava/lang/IllegalMonitorStateException;")); |
| types.add(factory.createType("Ljava/lang/IllegalStateException;")); |
| types.add(factory.createType("Ljava/lang/IllegalThreadStateException;")); |
| types.add(factory.createType("Ljava/lang/IncompatibleClassChangeError;")); |
| types.add(factory.createType("Ljava/lang/IndexOutOfBoundsException;")); |
| types.add(factory.createType("Ljava/lang/InstantiationError;")); |
| types.add(factory.createType("Ljava/lang/InstantiationException;")); |
| types.add(factory.createType("Ljava/lang/InternalError;")); |
| types.add(factory.createType("Ljava/lang/InterruptedException;")); |
| types.add(factory.createType("Ljava/lang/LinkageError;")); |
| types.add(factory.createType("Ljava/lang/NegativeArraySizeException;")); |
| types.add(factory.createType("Ljava/lang/NoClassDefFoundError;")); |
| types.add(factory.createType("Ljava/lang/NoSuchFieldError;")); |
| types.add(factory.createType("Ljava/lang/NoSuchFieldException;")); |
| types.add(factory.createType("Ljava/lang/NoSuchMethodError;")); |
| types.add(factory.createType("Ljava/lang/NoSuchMethodException;")); |
| types.add(factory.createType("Ljava/lang/NullPointerException;")); |
| types.add(factory.createType("Ljava/lang/NumberFormatException;")); |
| types.add(factory.createType("Ljava/lang/OutOfMemoryError;")); |
| types.add(factory.createType("Ljava/lang/RuntimeException;")); |
| types.add(factory.createType("Ljava/lang/SecurityException;")); |
| types.add(factory.createType("Ljava/lang/StackOverflowError;")); |
| types.add(factory.createType("Ljava/lang/StringIndexOutOfBoundsException;")); |
| types.add(factory.createType("Ljava/lang/ThreadDeath;")); |
| types.add(factory.createType("Ljava/lang/Throwable;")); |
| types.add(factory.createType("Ljava/lang/TypeNotPresentException;")); |
| types.add(factory.createType("Ljava/lang/UnknownError;")); |
| types.add(factory.createType("Ljava/lang/UnsatisfiedLinkError;")); |
| types.add(factory.createType("Ljava/lang/UnsupportedClassVersionError;")); |
| types.add(factory.createType("Ljava/lang/UnsupportedOperationException;")); |
| types.add(factory.createType("Ljava/lang/VerifyError;")); |
| types.add(factory.createType("Ljava/lang/VirtualMachineError;")); |
| types.add(factory.createType("Ljava/lang/annotation/AnnotationFormatError;")); |
| types.add(factory.createType("Ljava/lang/annotation/AnnotationTypeMismatchException;")); |
| types.add(factory.createType("Ljava/lang/annotation/IncompleteAnnotationException;")); |
| types.add(factory.createType("Ljava/lang/reflect/GenericSignatureFormatError;")); |
| types.add(factory.createType("Ljava/lang/reflect/InvocationTargetException;")); |
| types.add(factory.createType("Ljava/lang/reflect/MalformedParameterizedTypeException;")); |
| types.add(factory.createType("Ljava/lang/reflect/UndeclaredThrowableException;")); |
| types.add(factory.createType("Ljava/net/BindException;")); |
| types.add(factory.createType("Ljava/net/ConnectException;")); |
| types.add(factory.createType("Ljava/net/HttpRetryException;")); |
| types.add(factory.createType("Ljava/net/MalformedURLException;")); |
| types.add(factory.createType("Ljava/net/NoRouteToHostException;")); |
| types.add(factory.createType("Ljava/net/PortUnreachableException;")); |
| types.add(factory.createType("Ljava/net/ProtocolException;")); |
| types.add(factory.createType("Ljava/net/SocketException;")); |
| types.add(factory.createType("Ljava/net/SocketTimeoutException;")); |
| types.add(factory.createType("Ljava/net/URISyntaxException;")); |
| types.add(factory.createType("Ljava/net/UnknownHostException;")); |
| types.add(factory.createType("Ljava/net/UnknownServiceException;")); |
| types.add(factory.createType("Ljava/nio/BufferOverflowException;")); |
| types.add(factory.createType("Ljava/nio/BufferUnderflowException;")); |
| types.add(factory.createType("Ljava/nio/InvalidMarkException;")); |
| types.add(factory.createType("Ljava/nio/ReadOnlyBufferException;")); |
| types.add(factory.createType("Ljava/nio/channels/AlreadyConnectedException;")); |
| types.add(factory.createType("Ljava/nio/channels/AsynchronousCloseException;")); |
| types.add(factory.createType("Ljava/nio/channels/CancelledKeyException;")); |
| types.add(factory.createType("Ljava/nio/channels/ClosedByInterruptException;")); |
| types.add(factory.createType("Ljava/nio/channels/ClosedChannelException;")); |
| types.add(factory.createType("Ljava/nio/channels/ClosedSelectorException;")); |
| types.add(factory.createType("Ljava/nio/channels/ConnectionPendingException;")); |
| types.add(factory.createType("Ljava/nio/channels/FileLockInterruptionException;")); |
| types.add(factory.createType("Ljava/nio/channels/IllegalBlockingModeException;")); |
| types.add(factory.createType("Ljava/nio/channels/IllegalSelectorException;")); |
| types.add(factory.createType("Ljava/nio/channels/NoConnectionPendingException;")); |
| types.add(factory.createType("Ljava/nio/channels/NonReadableChannelException;")); |
| types.add(factory.createType("Ljava/nio/channels/NonWritableChannelException;")); |
| types.add(factory.createType("Ljava/nio/channels/NotYetBoundException;")); |
| types.add(factory.createType("Ljava/nio/channels/NotYetConnectedException;")); |
| types.add(factory.createType("Ljava/nio/channels/OverlappingFileLockException;")); |
| types.add(factory.createType("Ljava/nio/channels/UnresolvedAddressException;")); |
| types.add(factory.createType("Ljava/nio/channels/UnsupportedAddressTypeException;")); |
| types.add(factory.createType("Ljava/nio/charset/CharacterCodingException;")); |
| types.add(factory.createType("Ljava/nio/charset/CoderMalfunctionError;")); |
| types.add(factory.createType("Ljava/nio/charset/IllegalCharsetNameException;")); |
| types.add(factory.createType("Ljava/nio/charset/MalformedInputException;")); |
| types.add(factory.createType("Ljava/nio/charset/UnmappableCharacterException;")); |
| types.add(factory.createType("Ljava/nio/charset/UnsupportedCharsetException;")); |
| types.add(factory.createType("Ljava/security/AccessControlException;")); |
| types.add(factory.createType("Ljava/security/DigestException;")); |
| types.add(factory.createType("Ljava/security/GeneralSecurityException;")); |
| types.add(factory.createType("Ljava/security/InvalidAlgorithmParameterException;")); |
| types.add(factory.createType("Ljava/security/InvalidKeyException;")); |
| types.add(factory.createType("Ljava/security/InvalidParameterException;")); |
| types.add(factory.createType("Ljava/security/KeyException;")); |
| types.add(factory.createType("Ljava/security/KeyManagementException;")); |
| types.add(factory.createType("Ljava/security/KeyStoreException;")); |
| types.add(factory.createType("Ljava/security/NoSuchAlgorithmException;")); |
| types.add(factory.createType("Ljava/security/NoSuchProviderException;")); |
| types.add(factory.createType("Ljava/security/PrivilegedActionException;")); |
| types.add(factory.createType("Ljava/security/ProviderException;")); |
| types.add(factory.createType("Ljava/security/SignatureException;")); |
| types.add(factory.createType("Ljava/security/UnrecoverableEntryException;")); |
| types.add(factory.createType("Ljava/security/UnrecoverableKeyException;")); |
| types.add(factory.createType("Ljava/security/acl/AclNotFoundException;")); |
| types.add(factory.createType("Ljava/security/acl/LastOwnerException;")); |
| types.add(factory.createType("Ljava/security/acl/NotOwnerException;")); |
| types.add(factory.createType("Ljava/security/cert/CRLException;")); |
| types.add(factory.createType("Ljava/security/cert/CertPathBuilderException;")); |
| types.add(factory.createType("Ljava/security/cert/CertPathValidatorException;")); |
| types.add(factory.createType("Ljava/security/cert/CertStoreException;")); |
| types.add(factory.createType("Ljava/security/cert/CertificateEncodingException;")); |
| types.add(factory.createType("Ljava/security/cert/CertificateException;")); |
| types.add(factory.createType("Ljava/security/cert/CertificateExpiredException;")); |
| types.add(factory.createType("Ljava/security/cert/CertificateNotYetValidException;")); |
| types.add(factory.createType("Ljava/security/cert/CertificateParsingException;")); |
| types.add(factory.createType("Ljava/security/spec/InvalidKeySpecException;")); |
| types.add(factory.createType("Ljava/security/spec/InvalidParameterSpecException;")); |
| types.add(factory.createType("Ljava/sql/BatchUpdateException;")); |
| types.add(factory.createType("Ljava/sql/DataTruncation;")); |
| types.add(factory.createType("Ljava/sql/SQLException;")); |
| types.add(factory.createType("Ljava/sql/SQLWarning;")); |
| types.add(factory.createType("Ljava/text/ParseException;")); |
| types.add(factory.createType("Ljava/util/ConcurrentModificationException;")); |
| types.add(factory.createType("Ljava/util/DuplicateFormatFlagsException;")); |
| types.add(factory.createType("Ljava/util/EmptyStackException;")); |
| types.add(factory.createType("Ljava/util/FormatFlagsConversionMismatchException;")); |
| types.add(factory.createType("Ljava/util/FormatterClosedException;")); |
| types.add(factory.createType("Ljava/util/IllegalFormatCodePointException;")); |
| types.add(factory.createType("Ljava/util/IllegalFormatConversionException;")); |
| types.add(factory.createType("Ljava/util/IllegalFormatException;")); |
| types.add(factory.createType("Ljava/util/IllegalFormatFlagsException;")); |
| types.add(factory.createType("Ljava/util/IllegalFormatPrecisionException;")); |
| types.add(factory.createType("Ljava/util/IllegalFormatWidthException;")); |
| types.add(factory.createType("Ljava/util/InputMismatchException;")); |
| types.add(factory.createType("Ljava/util/InvalidPropertiesFormatException;")); |
| types.add(factory.createType("Ljava/util/MissingFormatArgumentException;")); |
| types.add(factory.createType("Ljava/util/MissingFormatWidthException;")); |
| types.add(factory.createType("Ljava/util/MissingResourceException;")); |
| types.add(factory.createType("Ljava/util/NoSuchElementException;")); |
| types.add(factory.createType("Ljava/util/TooManyListenersException;")); |
| types.add(factory.createType("Ljava/util/UnknownFormatConversionException;")); |
| types.add(factory.createType("Ljava/util/UnknownFormatFlagsException;")); |
| types.add(factory.createType("Ljava/util/concurrent/BrokenBarrierException;")); |
| types.add(factory.createType("Ljava/util/concurrent/CancellationException;")); |
| types.add(factory.createType("Ljava/util/concurrent/ExecutionException;")); |
| types.add(factory.createType("Ljava/util/concurrent/RejectedExecutionException;")); |
| types.add(factory.createType("Ljava/util/concurrent/TimeoutException;")); |
| types.add(factory.createType("Ljava/util/jar/JarException;")); |
| types.add(factory.createType("Ljava/util/prefs/BackingStoreException;")); |
| types.add(factory.createType("Ljava/util/prefs/InvalidPreferencesFormatException;")); |
| types.add(factory.createType("Ljava/util/regex/PatternSyntaxException;")); |
| types.add(factory.createType("Ljava/util/zip/DataFormatException;")); |
| types.add(factory.createType("Ljava/util/zip/ZipException;")); |
| types.add(factory.createType("Ljavax/crypto/BadPaddingException;")); |
| types.add(factory.createType("Ljavax/crypto/ExemptionMechanismException;")); |
| types.add(factory.createType("Ljavax/crypto/IllegalBlockSizeException;")); |
| types.add(factory.createType("Ljavax/crypto/NoSuchPaddingException;")); |
| types.add(factory.createType("Ljavax/crypto/ShortBufferException;")); |
| types.add(factory.createType("Ljavax/net/ssl/SSLException;")); |
| types.add(factory.createType("Ljavax/net/ssl/SSLHandshakeException;")); |
| types.add(factory.createType("Ljavax/net/ssl/SSLKeyException;")); |
| types.add(factory.createType("Ljavax/net/ssl/SSLPeerUnverifiedException;")); |
| types.add(factory.createType("Ljavax/net/ssl/SSLProtocolException;")); |
| types.add(factory.createType("Ljavax/security/auth/DestroyFailedException;")); |
| types.add(factory.createType("Ljavax/security/auth/callback/UnsupportedCallbackException;")); |
| types.add(factory.createType("Ljavax/security/auth/login/LoginException;")); |
| types.add(factory.createType("Ljavax/security/cert/CertificateEncodingException;")); |
| types.add(factory.createType("Ljavax/security/cert/CertificateException;")); |
| types.add(factory.createType("Ljavax/security/cert/CertificateExpiredException;")); |
| types.add(factory.createType("Ljavax/security/cert/CertificateNotYetValidException;")); |
| types.add(factory.createType("Ljavax/security/cert/CertificateParsingException;")); |
| types.add(factory.createType("Ljavax/xml/parsers/FactoryConfigurationError;")); |
| types.add(factory.createType("Ljavax/xml/parsers/ParserConfigurationException;")); |
| types.add(factory.createType("Ljunit/framework/AssertionFailedError;")); |
| types.add(factory.createType("Ljunit/framework/ComparisonFailure;")); |
| types.add(factory.createType("Lorg/apache/http/ConnectionClosedException;")); |
| types.add(factory.createType("Lorg/apache/http/HttpException;")); |
| types.add(factory.createType("Lorg/apache/http/MalformedChunkCodingException;")); |
| types.add(factory.createType("Lorg/apache/http/MethodNotSupportedException;")); |
| types.add(factory.createType("Lorg/apache/http/NoHttpResponseException;")); |
| types.add(factory.createType("Lorg/apache/http/ParseException;")); |
| types.add(factory.createType("Lorg/apache/http/ProtocolException;")); |
| types.add(factory.createType("Lorg/apache/http/UnsupportedHttpVersionException;")); |
| types.add(factory.createType("Lorg/apache/http/auth/AuthenticationException;")); |
| types.add(factory.createType("Lorg/apache/http/auth/InvalidCredentialsException;")); |
| types.add(factory.createType("Lorg/apache/http/auth/MalformedChallengeException;")); |
| types.add(factory.createType("Lorg/apache/http/client/CircularRedirectException;")); |
| types.add(factory.createType("Lorg/apache/http/client/ClientProtocolException;")); |
| types.add(factory.createType("Lorg/apache/http/client/HttpResponseException;")); |
| types.add(factory.createType("Lorg/apache/http/client/NonRepeatableRequestException;")); |
| types.add(factory.createType("Lorg/apache/http/client/RedirectException;")); |
| types.add(factory.createType("Lorg/apache/http/conn/ConnectTimeoutException;")); |
| types.add(factory.createType("Lorg/apache/http/conn/ConnectionPoolTimeoutException;")); |
| types.add(factory.createType("Lorg/apache/http/conn/HttpHostConnectException;")); |
| types.add(factory.createType("Lorg/apache/http/cookie/MalformedCookieException;")); |
| types.add(factory.createType("Lorg/apache/http/impl/auth/NTLMEngineException;")); |
| types.add( |
| factory.createType("Lorg/apache/http/impl/auth/UnsupportedDigestAlgorithmException;")); |
| types.add(factory.createType("Lorg/apache/http/impl/client/TunnelRefusedException;")); |
| types.add(factory.createType("Lorg/apache/http/impl/cookie/DateParseException;")); |
| types.add(factory.createType("Lorg/json/JSONException;")); |
| types.add(factory.createType("Lorg/w3c/dom/DOMException;")); |
| types.add(factory.createType("Lorg/xml/sax/SAXException;")); |
| types.add(factory.createType("Lorg/xml/sax/SAXNotRecognizedException;")); |
| types.add(factory.createType("Lorg/xml/sax/SAXNotSupportedException;")); |
| types.add(factory.createType("Lorg/xml/sax/SAXParseException;")); |
| types.add(factory.createType("Lorg/xmlpull/v1/XmlPullParserException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.D)) { |
| types.add(factory.createType("Landroid/content/IntentSender$SendIntentException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.E)) { |
| types.add(factory.createType("Landroid/accounts/AccountsException;")); |
| types.add(factory.createType("Landroid/accounts/AuthenticatorException;")); |
| types.add(factory.createType("Landroid/accounts/NetworkErrorException;")); |
| types.add(factory.createType("Landroid/accounts/OperationCanceledException;")); |
| types.add(factory.createType("Landroid/content/OperationApplicationException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.F)) { |
| types.add(factory.createType("Ljavax/xml/datatype/DatatypeConfigurationException;")); |
| types.add(factory.createType("Ljavax/xml/transform/TransformerConfigurationException;")); |
| types.add(factory.createType("Ljavax/xml/transform/TransformerException;")); |
| types.add(factory.createType("Ljavax/xml/transform/TransformerFactoryConfigurationError;")); |
| types.add(factory.createType("Ljavax/xml/xpath/XPathException;")); |
| types.add(factory.createType("Ljavax/xml/xpath/XPathExpressionException;")); |
| types.add(factory.createType("Ljavax/xml/xpath/XPathFactoryConfigurationException;")); |
| types.add(factory.createType("Ljavax/xml/xpath/XPathFunctionException;")); |
| types.add(factory.createType("Lorg/w3c/dom/ls/LSException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.G)) { |
| types.add(factory.createType("Landroid/net/sip/SipException;")); |
| types.add(factory.createType("Landroid/nfc/FormatException;")); |
| types.add(factory.createType("Ljava/io/IOError;")); |
| types.add(factory.createType("Ljava/sql/SQLClientInfoException;")); |
| types.add(factory.createType("Ljava/sql/SQLDataException;")); |
| types.add(factory.createType("Ljava/sql/SQLFeatureNotSupportedException;")); |
| types.add(factory.createType("Ljava/sql/SQLIntegrityConstraintViolationException;")); |
| types.add(factory.createType("Ljava/sql/SQLInvalidAuthorizationSpecException;")); |
| types.add(factory.createType("Ljava/sql/SQLNonTransientConnectionException;")); |
| types.add(factory.createType("Ljava/sql/SQLNonTransientException;")); |
| types.add(factory.createType("Ljava/sql/SQLRecoverableException;")); |
| types.add(factory.createType("Ljava/sql/SQLSyntaxErrorException;")); |
| types.add(factory.createType("Ljava/sql/SQLTimeoutException;")); |
| types.add(factory.createType("Ljava/sql/SQLTransactionRollbackException;")); |
| types.add(factory.createType("Ljava/sql/SQLTransientConnectionException;")); |
| types.add(factory.createType("Ljava/sql/SQLTransientException;")); |
| types.add(factory.createType("Ljava/util/ServiceConfigurationError;")); |
| types.add(factory.createType("Ljava/util/zip/ZipError;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.G_MR1)) { |
| types.add(factory.createType("Landroid/nfc/TagLostException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.H)) { |
| types.add(factory.createType("Landroid/app/Fragment$InstantiationException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteAccessPermException;")); |
| types.add( |
| factory.createType( |
| "Landroid/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteBlobTooBigException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteCantOpenDatabaseException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteDatabaseLockedException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteDatatypeMismatchException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteOutOfMemoryException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteReadOnlyDatabaseException;")); |
| types.add(factory.createType("Landroid/database/sqlite/SQLiteTableLockedException;")); |
| types.add(factory.createType("Landroid/graphics/SurfaceTexture$OutOfResourcesException;")); |
| types.add(factory.createType("Landroid/os/NetworkOnMainThreadException;")); |
| types.add(factory.createType("Landroid/renderscript/RSDriverException;")); |
| types.add(factory.createType("Landroid/renderscript/RSIllegalArgumentException;")); |
| types.add(factory.createType("Landroid/renderscript/RSInvalidStateException;")); |
| types.add(factory.createType("Landroid/renderscript/RSRuntimeException;")); |
| types.add(factory.createType("Landroid/util/Base64DataException;")); |
| types.add(factory.createType("Landroid/util/MalformedJsonException;")); |
| types.add(factory.createType("Landroid/view/KeyCharacterMap$UnavailableException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.I)) { |
| types.add(factory.createType("Landroid/security/KeyChainException;")); |
| types.add(factory.createType("Landroid/util/NoSuchPropertyException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.I_MR1)) { |
| types.add(factory.createType("Landroid/os/TransactionTooLargeException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.J)) { |
| types.add(factory.createType("Landroid/media/MediaCodec$CryptoException;")); |
| types.add(factory.createType("Landroid/media/MediaCryptoException;")); |
| types.add(factory.createType("Landroid/os/OperationCanceledException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.J_MR1)) { |
| types.add(factory.createType("Landroid/view/WindowManager$InvalidDisplayException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.J_MR2)) { |
| types.add(factory.createType("Landroid/media/DeniedByServerException;")); |
| types.add(factory.createType("Landroid/media/MediaDrmException;")); |
| types.add(factory.createType("Landroid/media/NotProvisionedException;")); |
| types.add(factory.createType("Landroid/media/UnsupportedSchemeException;")); |
| } |
| if (minApiLevel.isGreaterThanOrEqualTo(AndroidApiLevel.K)) { |
| types.add(factory.createType("Landroid/media/ResourceBusyException;")); |
| types.add( |
| factory.createType("Landroid/os/ParcelFileDescriptor$FileDescriptorDetachedException;")); |
| types.add(factory.createType("Ljava/lang/ReflectiveOperationException;")); |
| types.add(factory.createType("Ljavax/crypto/AEADBadTagException;")); |
| } |
| return types; |
| } |
| } |