Fixed
Status Update
Comments
uc...@google.com <uc...@google.com> #2
Looks like ContextWrapper.getClassLoader()
is throwing an NPE.
java_vm_ext.cc:591] JNI DETECTED ERROR IN APPLICATION: JNI FindClass called with pending exception java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.ClassLoader android.content.Context.getClassLoader()' on a null object reference
java_vm_ext.cc:591] at java.lang.ClassLoader android.content.ContextWrapper.getClassLoader() (ContextWrapper.java:176)
java_vm_ext.cc:591] at java.lang.ClassLoader com.android.tools.agent.app.inspection.AppInspectionService.findClassLoader() (AppInspectionService.java:435)
java_vm_ext.cc:591] at void com.android.tools.agent.app.inspection.AppInspectionService.<init>(long) (AppInspectionService.java:88)
java_vm_ext.cc:591] at com.android.tools.agent.app.inspection.AppInspectionService com.android.tools.agent.app.inspection.AppInspectionService.createAppInspectionService() (AppInspectionService.java:-2)
java_vm_ext.cc:591] at com.android.tools.agent.app.inspection.AppInspectionService com.android.tools.agent.app.inspection.AppInspectionService.instance() (AppInspectionService.java:55)
java_vm_ext.cc:591]
java_vm_ext.cc:591] in call to FindClass
ej...@gmail.com <ej...@gmail.com> #3
I added NPE protection that resorts to a "safe" way to get a classloader.
uc...@google.com <uc...@google.com>
je...@google.com <je...@google.com>
ga...@google.com <ga...@google.com> #4
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Ladybug Feature Drop | 2024.2.2 Canary 2
- Android Gradle Plugin 8.8.0-alpha02
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
sp...@google.com <sp...@google.com>
sp...@google.com <sp...@google.com>
an...@google.com <an...@google.com> #5
I can confirm App inspection works. Thank you for fixing this.
Description
since it will return the size of the first directory instead of adding it to the total count.
private int getTotalLocalFileSize(File[] files) {
int count = 0;
for (File f : files) {
if (f.exists()) {
if (f.isDirectory()) {
return getTotalLocalFileSize(f.listFiles()) + 1;
} else if (f.isFile()) {
count += f.length();
}
}
}
return count;
}
Should be:
private int getTotalLocalFileSize(File[] files) {
int count = 0;
for (File f : files) {
if (f.exists()) {
if (f.isDirectory()) {
count += getTotalLocalFileSize(f.listFiles()) + 1;
} else if (f.isFile()) {
count += f.length();
}
}
}
return count;
}
Android Plugin Version: 3.1.0
com.android.tools.ddms:ddmlib:26.1.0