Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

# StackWalker.StackFrame

` public static interface StackWalker.StackFrame `   
` `

|---|
| java.lang.StackWalker.StackFrame |

<br />

*** ** * ** ***

A `StackFrame` object represents a method invocation returned by `https://developer.android.com/reference/java/lang/StackWalker`.

The `https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getDeclaringClass()` method may be unsupported as determined by the [stack walking options](https://developer.android.com/reference/java/lang/StackWalker.Option) of a [stack walker](https://developer.android.com/reference/java/lang/StackWalker).

## Summary

| ### Public methods ||
|---|---|
| ` abstract int` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getByteCodeIndex()() ` Returns the index to the `insns` array of a `code_item` containing the execution point represented by this stack frame. |
| ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getClassName()() ` Gets the [binary name](https://developer.android.com/reference/java/lang/ClassLoader#binary-name) of the declaring class of the method represented by this stack frame. |
| ` abstract https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getDeclaringClass()() ` Gets the declaring `Class` for the method represented by this stack frame. |
| ` default https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getDescriptor()() ` Returns the *descriptor* of the method represented by this stack frame as defined by The Java Virtual Machine Specification. |
| ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getFileName()() ` Returns the name of the source file containing the execution point represented by this stack frame. |
| ` abstract int` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getLineNumber()() ` Returns the line number of the source line containing the execution point represented by this stack frame. |
| ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getMethodName()() ` Gets the name of the method represented by this stack frame. |
| ` default https://developer.android.com/reference/java/lang/invoke/MethodType` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#getMethodType()() ` Returns the `https://developer.android.com/reference/java/lang/invoke/MethodType` representing the parameter types and the return type for the method represented by this stack frame. |
| ` abstract boolean` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#isNativeMethod()() ` Returns `true` if the method containing the execution point represented by this stack frame is a native method. |
| ` abstract https://developer.android.com/reference/java/lang/StackTraceElement` | ` https://developer.android.com/reference/java/lang/StackWalker.StackFrame#toStackTraceElement()() ` Gets a `StackTraceElement` for this stack frame. |

## Public methods

### getByteCodeIndex

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract int getByteCodeIndex ()
```

Returns the index to the `insns` array of a `code_item` containing the execution point represented by this stack frame. The code array gives the actual bytes of Dalvik bytecode that implement the method.

<br />

| Returns ||
|---|---|
| `int` | the index to the `insns` array of the `code_item` attribute containing the execution point represented by this stack frame, or a negative number if the method is native. <br /> |

### getClassName

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract String getClassName ()
```

Gets the [binary name](https://developer.android.com/reference/java/lang/ClassLoader#binary-name) of the declaring class of the method represented by this stack frame.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the binary name of the declaring class of the method represented by this stack frame <br /> |

### getDeclaringClass

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract Class<?> getDeclaringClass ()
```

Gets the declaring `Class` for the method represented by this stack frame.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/Class<?>` | the declaring `Class` of the method represented by this stack frame <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException` | if this `StackWalker` is not configured with `https://developer.android.com/reference/java/lang/StackWalker.Option#RETAIN_CLASS_REFERENCE`. |

### getDescriptor

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String getDescriptor ()
```

Returns the *descriptor* of the method represented by this stack frame as defined by The Java Virtual Machine Specification.

<br />

##### Implementation Requirements:

- The default implementation throws `UnsupportedOperationException`.

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the descriptor of the method represented by this stack frame <br /> |

**See also:**

- `https://developer.android.com/reference/java/lang/invoke/MethodType#fromMethodDescriptorString(java.lang.String,%20java.lang.ClassLoader)`
- `https://developer.android.com/reference/java/lang/invoke/MethodType#toMethodDescriptorString()`

### getFileName

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract String getFileName ()
```

Returns the name of the source file containing the execution point represented by this stack frame. Generally, this corresponds to the `SourceFile` attribute of the relevant `class` file as defined by The Java Virtual Machine Specification. In some systems, the name may refer to some source code unit other than a file, such as an entry in a source repository.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the name of the file containing the execution point represented by this stack frame, or `null` if this information is unavailable. <br /> |

### getLineNumber

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract int getLineNumber ()
```

Returns the line number of the source line containing the execution point represented by this stack frame. Generally, this is derived from the `LineNumberTable` attribute of the relevant `class` file as defined by The Java Virtual Machine Specification.

<br />

| Returns ||
|---|---|
| `int` | the line number of the source line containing the execution point represented by this stack frame, or a negative number if this information is unavailable. <br /> |

### getMethodName

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract String getMethodName ()
```

Gets the name of the method represented by this stack frame.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the name of the method represented by this stack frame <br /> |

### getMethodType

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public MethodType getMethodType ()
```

Returns the `https://developer.android.com/reference/java/lang/invoke/MethodType` representing the parameter types and the return type for the method represented by this stack frame.

<br />

##### Implementation Requirements:

- The default implementation throws `UnsupportedOperationException`.

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/invoke/MethodType` | the `MethodType` for this stack frame <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException` | if this `StackWalker` is not configured with `https://developer.android.com/reference/java/lang/StackWalker.Option#RETAIN_CLASS_REFERENCE`. |

### isNativeMethod

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract boolean isNativeMethod ()
```

Returns `true` if the method containing the execution point represented by this stack frame is a native method.

<br />

| Returns ||
|---|---|
| `boolean` | `true` if the method containing the execution point represented by this stack frame is a native method. <br /> |

### toStackTraceElement

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract StackTraceElement toStackTraceElement ()
```

Gets a `StackTraceElement` for this stack frame.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/StackTraceElement` | `StackTraceElement` for this stack frame. <br /> |