Stericson / RootTools

RootTools Library
1.61k stars 486 forks source link

ClassNotFoundException thrown when executing a JavaCommandCapture command #2

Open mysterymagination opened 10 years ago

mysterymagination commented 10 years ago

I followed the directions on the RootTools usage and run Java as root wiki pages, but when I load my app with the following in onCreate() I get a ClassNotFoundException: com.stericson.RootTools.containers.RootClass:

import com.stericson.RootTools.RootTools; import com.stericson.RootTools.containers.RootClass; import com.stericson.RootTools.exceptions.RootDeniedException; import com.stericson.RootTools.execution.CommandCapture; import com.stericson.RootTools.execution.JavaCommandCapture; import com.stericson.RootTools.execution.Shell; ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

RootTools.debugMode = true; //ON
RootTools.log("roottools is logging");
RootTools.handlerEnabled = false;

Shell shell;
try {
    shell = RootTools.getShell(true);
    JavaCommandCapture cmd = new JavaCommandCapture(
            43,
            false,
            this,
            "com.mycompany.TestActivity.RootToolsTest") {

        @Override
        public void commandOutput(int id, String line) {
            super.commandOutput(id, line);

        }
    };
    shell.add(cmd);
} catch (Exception e) {
    e.printStackTrace();
}

... @RootClass.Candidate private class RootToolsTest{ public RootToolsTest(){ Log.d("RootToolsTest", "testing a Java class run as root"); } }

The same thing happened when I tried RootTools' test class com.stericson.RootToolsTests.NativeJavaClass. I've tried a number of configurations for the placement and inclusion of the RootTools.jar file (most notably ensuring that the RootTools jar is checked for export and moved to the top of the order and export list in Eclipse) but the ClassNotFoundException persists. The exact logcat output follows:

06-02 07:27:45.529: D/RootTools v3.4(5165): roottools is logging 06-02 07:27:45.529: D/RootTools v3.4(5165): Starting Root Shell! 06-02 07:27:45.539: D/RootTools v3.4(5165): Starting shell: su 06-02 07:27:46.409: D/RootTools v3.4(5165): CommandHandler not created 06-02 07:27:46.429: D/RootTools v3.4(5165): Executing: dalvikvm -cp /data/data /com.hdradio.fmdelverrooted/files/anbuild.dex com.android.internal.util.WithFramework com.stericson.RootTools.containers.RootClass com.hdradio.fmdelver.core.DelverActivity.RootToolsTest 06-02 07:27:46.749: D/Command(5165): ID: 43, java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass 06-02 07:27:46.759: D/Command(5165): ID: 43,at java.lang.Class.classForName(Native Method) 06-02 07:27:46.759: D/Command(5165): ID: 43,at java.lang.Class.forName(Class.java:217) 06-02 07:27:46.759: D/Command(5165): ID: 43,at java.lang.Class.forName(Class.java:172) 06-02 07:27:46.769: D/Command(5165): ID: 43,at com.android.internal.util.WithFramework.main(WithFramework.java:36) 06-02 07:27:46.769: D/Command(5165): ID: 43,at dalvik.system.NativeStart.main(Native Method) 06-02 07:27:46.769: D/Command(5165): ID: 43, Caused by: java.lang.NoClassDefFoundError: com/stericson/RootTools/containers/RootClass 06-02 07:27:46.769: D/Command(5165): ID: 43, ... 5 more 06-02 07:27:46.769: D/Command(5165): ID: 43, Caused by: java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass 06-02 07:27:46.769: D/Command(5165): ID: 43,at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 06-02 07:27:46.769: D/Command(5165): ID: 43,at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-02 07:27:46.769: D/Command(5165): ID: 43, at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06-02 07:27:46.769: D/Command(5165): ID: 43, ... 5 more 06-02 07:27:46.979: D/RootTools v3.4(5165): Command 43 finished.

My .classpath looks like:

<?xml version="1.0" encoding="UTF-8"?>

My development system configuration is as follows: OS: Mac OS X 10.9.2 Eclipse: Kepler ADT: 22.3 RootTools Version: 3.4

and my target platform: Android: 4.1.1 Model: Sony Xperia E C1504 (rooted using SRSRoot and the 'Gandalf' exploit) Firmware: Stock Kernel Xperia E C1505_11.3.A.0.47 (supposed to work for C1504 as well)

Any ideas why Android can't find the com.stericson.RootTools.containers.RootClass class?

Stericson commented 10 years ago

Hello,

try following these steps:

In Eclipse, right click your project, navigate to "Build Path", then to "configure build path" Now choose "add External Jar" Navigate to the RootToolshttps://code.google.com/p/roottools/wiki/RootTools .jar file you download and choose it. Navigate to "Order and Export" make sure the box is ticked next to the library, and move it to the top of the list. Finish up by choosing "ok"

On Thu, Feb 27, 2014 at 5:12 PM, Jeff Creswell notifications@github.comwrote:

I followed the directions on the RootTools usage and run Java as root wiki pages, but when I load my app with the following in onCreate() I get a ClassNotFoundException: com.stericson.RootTools.containers.RootClass:

import com.stericson.RootTools.RootTools; import com.stericson.RootTools.containers.RootClass; import com.stericson.RootTools.exceptions.RootDeniedException; import com.stericson.RootTools.execution.CommandCapture; import com.stericson.RootTools.execution.JavaCommandCapture; import com.stericson.RootTools.execution.Shell; ... @Override https://github.com/Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

RootTools.debugMode = true; //ON RootTools.log("roottools is logging"); RootTools.handlerEnabled = false;

Shell shell; try { shell = RootTools.getShell(true); JavaCommandCapture cmd = new JavaCommandCapture( 43, false, this, "com.mycompany.TestActivity.RootToolsTest") {

    @Override
    public void commandOutput(int id, String line) {
        super.commandOutput(id, line);

    }
};
shell.add(cmd);

} catch (Exception e) { e.printStackTrace(); }

... @RootClass.Candidate private class RootToolsTest{ public RootToolsTest(){ Log.d("RootToolsTest", "testing a Java class run as root"); } }

The same thing happened when I tried RootTools' test class com.stericson.RootToolsTests.NativeJavaClass. I've tried a number of configurations for the placement and inclusion of the RootTools.jar file (most notably ensuring that the RootTools jar is checked for export and moved to the top of the order and export list in Eclipse) but the ClassNotFoundException persists. The exact logcat output follows:

06-02 07:27:45.529: D/RootTools v3.4(5165): roottools is logging 06-02 07:27:45.529: D/RootTools v3.4(5165): Starting Root Shell! 06-02 07:27:45.539: D/RootTools v3.4(5165): Starting shell: su 06-02 07:27:46.409: D/RootTools v3.4(5165): CommandHandler not created 06-02 07:27:46.429: D/RootTools v3.4(5165): Executing: dalvikvm -cp /data/data /com.hdradio.fmdelverrooted/files/anbuild.dex com.android.internal.util.WithFramework com.stericson.RootTools.containers.RootClass com.hdradio.fmdelver.core.DelverActivity.RootToolsTest 06-02 07:27:46.749: D/Command(5165): ID: 43, java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass 06-02 07:27:46.759: D/Command(5165): ID: 43,at java.lang.Class.classForName(Native Method) 06-02 07:27:46.759: D/Command(5165): ID: 43,at java.lang.Class.forName(Class.java:217) 06-02 07:27:46.759: D/Command(5165): ID: 43,at java.lang.Class.forName(Class.java:172) 06-02 07:27:46.769: D/Command(5165): ID: 43,at com.android.internal.util.WithFramework.main(WithFramework.java:36) 06-02 07:27:46.769: D/Command(5165): ID: 43,at dalvik.system.NativeStart.main(Native Method) 06-02 07:27:46.769: D/Command(5165): ID: 43, Caused by: java.lang.NoClassDefFoundError: com/stericson/RootTools/containers/RootClass 06-02 07:27:46.769: D/Command(5165): ID: 43, ... 5 more 06-02 07:27:46.769: D/Command(5165): ID: 43, Caused by: java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass 06-02 07:27:46.769: D/Command(5165): ID: 43,at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 06-02 07:27:46.769: D/Command(5165): ID: 43,at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-02 07:27:46.769: D/Command(5165): ID: 43, at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06-02 07:27:46.769: D/Command(5165): ID: 43, ... 5 more 06-02 07:27:46.979: D/RootTools v3.4(5165): Command 43 finished.

My .classpath looks like:

<?xml version="1.0" encoding="UTF-8"?>

path="com.android.ide.eclipse.adt.LIBRARIES"/> path="com.android.ide.eclipse.adt.DEPENDENCIES"/>

My development system configuration is as follows: OS: Mac OS X 10.9.2 Eclipse: Kepler ADT: 22.3

and my target platform: Android: 4.1.1 Model: Sony Xperia E C1504 (rooted using SRSRoot and the 'Gandalf' exploit) Firmware: Stock Kernel Xperia E C1505_11.3.A.0.47 (supposed to work for C1504 as well)

Any ideas why Android can't find the com.stericson.RootTools.containers.RootClass class?

Reply to this email directly or view it on GitHubhttps://github.com/Stericson/RootTools/issues/2 .

mysterymagination commented 10 years ago

Hi Stephen, I tried your steps above, but the result was the same-- ClassNotFoundException for com.stericson.RootTools.containers.RootClass thanks, ccj

mysterymagination commented 10 years ago

could something going wrong during the construction of anbuild.dex cause this error? I've cleaned the project, removed the old anbuild.dex, rebuilt the project and then anbuild.dex, and re-installed the app but the ClassNotFoundException persists. How can I verify that the contents of anbuild.dex are correct?

mysterymagination commented 10 years ago

sidenote: OSX creates .DS_Store files in any directory Finder has entered to keep track of metadata for the GUI; if an OSX user has entered $ANDROID_HOME/build-tools with Finder the .DS_Store file will screw up the execution of com.stericson.RootTools.containers.RootClass in the method getPathToDx() which assumes that only relevant SDK version directories will be present. Specifically, a NumberFormatException is thrown from Integer.parseInt("") because split(".") executed on .DS_Store returns the empty string to index 0 of the resultant String array. A workaround is for the user to ensure only relevant SDK version directories are present in build-tools, but some extra validation in RootClass might be handy. Thanks!

mysterymagination commented 10 years ago

Can there be more than one @RootClass.candidate annotated class in an app using JavaCommandCapture? I looked at the dexdump of my anbuild.dex and I only saw instances of com.stericson.RootTools.containers.RootClass associated with one of my annotations, and not the one I was currently testing in the app which winds up throwing ClassNotFoundException for RootClass

Fusion commented 10 years ago

Hi sorry for only realizing now that we had an issue thread open here.

You can use the candidate annotation with multiple classes and they should all end up in the dex file.

OK the parseInt() error is goofy I'll fix that (unless Stephen gets around to doing it first)

Note that the code you posted is about a private class. This is not a class that can ever be invoked by anyone.

Fusion commented 10 years ago

BTW, beyond the wiki documentation, you can look into a real application: https://github.com/Fusion/BambooGarden

mysterymagination commented 10 years ago

In JavaCommandCapture's constructor parameters, what is the significance of the id argument?

mysterymagination commented 10 years ago

I tried including the RootTools source code with my app build, but the result is the same as above. Below follows the unfiltered logcat history around when I use JavaCommandCapture: [CODE] 03-06 15:39:53.969: D/RootTools v3.4(3261): roottools is logging 03-06 15:39:53.969: D/RootTools v3.4(3261): Starting Root Shell! 03-06 15:39:53.969: D/RootTools v3.4(3261): Starting shell: su 03-06 15:39:54.019: E/su(3275): sudb - Opening database 03-06 15:39:54.019: E/su(3275): sudb - Database opened 03-06 15:39:54.029: E/su(3275): sudb - Database closed 03-06 15:39:54.519: D/dalvikvm(3278): GC_CONCURRENT freed 103K, 80% free 513K/2560K, paused 0ms+3ms, total 11ms 03-06 15:39:54.529: W/LocaleUtil(3058): locale = en_US 03-06 15:39:54.529: W/LocaleUtil(3058): scriptSubtag = Latn 03-06 15:39:54.749: D/su(3275): 10140 com.mycompany.fmdelverrooted executing 0 /system/bin/sh using shell /system/bin/sh : sh 03-06 15:39:54.759: D/RootTools v3.4(3261): CommandHandler not created 03-06 15:39:54.779: D/RootTools v3.4(3261): Executing: dalvikvm -cp /data/data/com.mycompany.fmdelverrooted/files/anbuild.dex com.android.internal.util.WithFramework com.stericson.RootTools.containers.RootClass com.mycompany.fmdelver.core.DelverActivity.RootToolsTest 03-06 15:39:54.979: I/Adreno200-EGL(3261): : EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_REL_RB1.04.01.01.06.043_msm7627a_JB_REL_RB1.2_Merge_release_AU (Merge) 03-06 15:39:54.979: I/Adreno200-EGL(3261): Build Date: 02/07/13 Thu 03-06 15:39:54.979: I/Adreno200-EGL(3261): Local Branch: 03-06 15:39:54.979: I/Adreno200-EGL(3261): Remote Branch: m/jb_rel_rb1.2 03-06 15:39:54.979: I/Adreno200-EGL(3261): Local Patches: NONE 03-06 15:39:54.979: I/Adreno200-EGL(3261): Reconstruct Branch: NOTHING 03-06 15:39:55.129: W/dalvikvm(3296): threadid=1: thread exiting with uncaught exception (group=0x40a09498) 03-06 15:39:55.149: D/Command(3261): ID: 1, java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass 03-06 15:39:55.149: D/Command(3261): ID: 1, at java.lang.Class.classForName(Native Method) 03-06 15:39:55.149: D/Command(3261): ID: 1, at java.lang.Class.forName(Class.java:217) 03-06 15:39:55.149: D/Command(3261): ID: 1, at java.lang.Class.forName(Class.java:172) 03-06 15:39:55.149: D/Command(3261): ID: 1, at com.android.internal.util.WithFramework.main(WithFramework.java:36) 03-06 15:39:55.149: D/Command(3261): ID: 1, at dalvik.system.NativeStart.main(Native Method) 03-06 15:39:55.149: D/Command(3261): ID: 1, Caused by: java.lang.NoClassDefFoundError: com/stericson/RootTools/containers/RootClass 03-06 15:39:55.149: D/Command(3261): ID: 1, ... 5 more 03-06 15:39:55.149: D/Command(3261): ID: 1, Caused by: java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass 03-06 15:39:55.149: D/Command(3261): ID: 1, at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 03-06 15:39:55.159: D/Command(3261): ID: 1, at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 03-06 15:39:55.159: D/Command(3261): ID: 1, at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 03-06 15:39:55.159: D/Command(3261): ID: 1, ... 5 more 03-06 15:39:55.159: D/dalvikvm(3296): GC_CONCURRENT freed 17K, 90% free 106K/1024K, paused 0ms+1ms, total 1ms 03-06 15:39:55.239: I/ActivityManager(393): Displayed com.mycompany.fmdelverrooted/com.mycompany.fmdelver.core.DelverActivity: +1s450ms 03-06 15:39:55.399: D/RootTools v3.4(3261): Command 1 finished.

[/CODE]

Interestingly, since I had to re-root my phone for unrelated reasons and SuperUser had to rewrite its white-list, I got to see that the SuperUser prompt for root permissions does rise for the user to accept or decline when my app tries to use JavaCommandCapture. After pressing 'accept' and seeing the ' has been granted superuser privs' toast the log above gets written.

mysterymagination commented 10 years ago

and here is the dexdump content of my anbuild.dex file: [CODE] Processing './anbuild.dex'... Opened './anbuild.dex', DEX version '035' Class #0 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$1;' Access flags : 0x0000 () Superclass : 'Lcom/stericson/RootTools/execution/JavaCommandCapture;' Interfaces - Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$1;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$1;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;IZLandroid/content/Context;[Ljava/lang/String;)V'
  access        : 0x10080 (VARARGS CONSTRUCTOR)
  code          -
  registers     : 6
  ins           : 6
  outs          : 5
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0002 line=63
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$1; 
    0x0000 - 0x0006 reg=2 $anonymous0 I 
    0x0000 - 0x0006 reg=3 $anonymous1 Z 
    0x0000 - 0x0006 reg=4 $anonymous2 Landroid/content/Context; 
    0x0000 - 0x0006 reg=5 $anonymous3 [Ljava/lang/String; 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$1;)

  name          : 'commandOutput'
  type          : '(ILjava/lang/String;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 3
  ins           : 3
  outs          : 3
  insns size    : 4 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=71
    0x0003 line=73
  locals        : 
    0x0000 - 0x0004 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$1; 
    0x0000 - 0x0004 reg=1 id I 
    0x0000 - 0x0004 reg=2 line Ljava/lang/String; 

source_file_idx : 33 (DelverActivity.java)

Class #1 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$2;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Ljava/lang/Thread$UncaughtExceptionHandler;'

Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$2;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)
#1              : (in Lcom/mycompany/fmdelver/core/DelverActivity$2;)
  name          : 'val$subclass'
  type          : 'Ljava/lang/Thread$UncaughtExceptionHandler;'
  access        : 0x1012 (PRIVATE FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$2;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;Ljava/lang/Thread$UncaughtExceptionHandler;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 3
  ins           : 3
  outs          : 1
  insns size    : 8 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0004 line=99
  locals        : 
    0x0000 - 0x0008 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$2; 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$2;)

  name          : 'uncaughtException'
  type          : '(Ljava/lang/Thread;Ljava/lang/Throwable;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 6
  ins           : 3
  outs          : 3
  insns size    : 33 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=102
    0x0003 line=103
    0x001b line=105
    0x0020 line=106
  locals        : 
    0x0000 - 0x0021 reg=3 this Lcom/mycompany/fmdelver/core/DelverActivity$2; 
    0x0000 - 0x0021 reg=4 paramThread Ljava/lang/Thread; 
    0x0000 - 0x0021 reg=5 paramThrowable Ljava/lang/Throwable; 

source_file_idx : 33 (DelverActivity.java)

Class #2 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$3;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Landroid/view/View$OnClickListener;'

Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$3;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$3;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 2
  ins           : 2
  outs          : 1
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0002 line=159
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$3; 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$3;)

  name          : 'onClick'
  type          : '(Landroid/view/View;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 7
  ins           : 2
  outs          : 2
  insns size    : 50 16-bit code units
  catches       : 1
    0x0000 - 0x0023
      Ljava/io/IOException; -> 0x002d
  positions     : 
    0x0000 line=165
    0x000c line=166
    0x0023 line=172
    0x002c line=180
    0x002d line=167
    0x002e line=169
  locals        : 
    0x000c - 0x0023 reg=0 assetsList [Ljava/lang/String; 
    0x002e - 0x0032 reg=1 e Ljava/io/IOException; 
    0x0000 - 0x0032 reg=5 this Lcom/mycompany/fmdelver/core/DelverActivity$3; 
    0x0000 - 0x0032 reg=6 arg0 Landroid/view/View; 

source_file_idx : 33 (DelverActivity.java)

Class #3 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$4;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Landroid/view/View$OnClickListener;'

Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$4;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$4;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 2
  ins           : 2
  outs          : 1
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0002 line=189
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$4; 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$4;)

  name          : 'onClick'
  type          : '(Landroid/view/View;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 2
  ins           : 2
  outs          : 0
  insns size    : 4 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=195
    0x0003 line=198
  locals        : 
    0x0000 - 0x0004 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$4; 
    0x0000 - 0x0004 reg=1 v Landroid/view/View; 

source_file_idx : 33 (DelverActivity.java)

Class #4 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$5;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Landroid/view/View$OnClickListener;'

Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$5;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$5;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 2
  ins           : 2
  outs          : 1
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0002 line=202
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$5; 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$5;)

  name          : 'onClick'
  type          : '(Landroid/view/View;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 2
  ins           : 2
  outs          : 0
  insns size    : 4 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=207
    0x0003 line=210
  locals        : 
    0x0000 - 0x0004 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$5; 
    0x0000 - 0x0004 reg=1 v Landroid/view/View; 

source_file_idx : 33 (DelverActivity.java)

Class #5 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$6;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Landroid/view/View$OnClickListener;'

Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$6;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$6;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 2
  ins           : 2
  outs          : 1
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0002 line=214
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$6; 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$6;)

  name          : 'onClick'
  type          : '(Landroid/view/View;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 4
  ins           : 2
  outs          : 2
  insns size    : 32 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=219
    0x000a line=220
    0x000f line=226
    0x0010 line=222
    0x001a line=223
  locals        : 
    0x0000 - 0x0020 reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity$6; 
    0x0000 - 0x0020 reg=3 v Landroid/view/View; 

source_file_idx : 33 (DelverActivity.java)

Class #6 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$7;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Landroid/view/View$OnClickListener;'

Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$7;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$7;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 2
  ins           : 2
  outs          : 1
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0002 line=230
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$7; 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$7;)

  name          : 'onClick'
  type          : '(Landroid/view/View;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 6
  ins           : 2
  outs          : 2
  insns size    : 45 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=235
    0x000a line=238
    0x0014 line=239
    0x0018 line=240
    0x002c line=243
  locals        : 
    0x0018 - 0x002c reg=0 v4l2_result I 
    0x0000 - 0x002d reg=4 this Lcom/mycompany/fmdelver/core/DelverActivity$7; 
    0x0000 - 0x002d reg=5 v Landroid/view/View; 

source_file_idx : 33 (DelverActivity.java)

Class #7 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$8;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Landroid/view/View$OnClickListener;'

Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$8;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$8;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 2
  ins           : 2
  outs          : 1
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0002 line=281
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$8; 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$8;)

  name          : 'onClick'
  type          : '(Landroid/view/View;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 6
  ins           : 2
  outs          : 3
  insns size    : 29 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=287
    0x001c line=288
  locals        : 
    0x0000 - 0x001d reg=4 this Lcom/mycompany/fmdelver/core/DelverActivity$8; 
    0x0000 - 0x001d reg=5 v Landroid/view/View; 

source_file_idx : 33 (DelverActivity.java)

Class #8 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$RootToolsTest;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces - Static fields - Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$RootToolsTest;)

  name          : 'this$0'
  type          : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$RootToolsTest;)

  name          : '<init>'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;Lcom/stericson/RootTools/containers/RootClass$RootArgs;)V'
  access        : 0x10001 (PUBLIC CONSTRUCTOR)
  code          -
  registers     : 5
  ins           : 3
  outs          : 2
  insns size    : 13 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=317
    0x0005 line=318
    0x000c line=319
  locals        : 
    0x0000 - 0x000d reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity$RootToolsTest; 
    0x0000 - 0x000d reg=4 args Lcom/stericson/RootTools/containers/RootClass$RootArgs; 

Virtual methods - source_file_idx : 33 (DelverActivity.java)

Class #9 - Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity;' Access flags : 0x0001 (PUBLIC) Superclass : 'Landroid/app/Activity;' Interfaces - Static fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)

  name          : 'ACTION_FM'
  type          : 'Ljava/lang/String;'
  access        : 0x0019 (PUBLIC STATIC FINAL)
#1              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'ERR_HW'
  type          : 'I'
  access        : 0x0019 (PUBLIC STATIC FINAL)
#2              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'ERR_LIB_INIT'
  type          : 'I'
  access        : 0x0019 (PUBLIC STATIC FINAL)
#3              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'ERR_OK'
  type          : 'I'
  access        : 0x0019 (PUBLIC STATIC FINAL)
#4              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'PLATFORM'
  type          : 'Ljava/lang/String;'
  access        : 0x0019 (PUBLIC STATIC FINAL)
#5              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'TAG'
  type          : 'Ljava/lang/String;'
  access        : 0x0009 (PUBLIC STATIC)

Instance fields -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)

  name          : 'SUPERUSER_REQUEST'
  type          : 'I'
  access        : 0x0012 (PRIVATE FINAL)
#1              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'delverLib'
  type          : 'Lcom/mycompany/fmdelver/nativeinterface/NativeFMDelverLib;'
  access        : 0x0002 (PRIVATE)
#2              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'errorCode'
  type          : 'I'
  access        : 0x0002 (PRIVATE)
#3              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'libActive'
  type          : 'I'
  access        : 0x0002 (PRIVATE)
#4              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'mv_oFMReceiver'
  type          : 'Lcom/mycompany/fmdelver/core/FMReceiver;'
  access        : 0x0002 (PRIVATE)
#5              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'mv_oRootControls'
  type          : 'Lcom/mycompany/fmdelver/core/RootControls;'
  access        : 0x0002 (PRIVATE)

Direct methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)

  name          : '<clinit>'
  type          : '()V'
  access        : 0x10008 (STATIC CONSTRUCTOR)
  code          -
  registers     : 1
  ins           : 0
  outs          : 0
  insns size    : 5 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=34
    0x0004 line=49
  locals        : 
#1              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : '<init>'
  type          : '()V'
  access        : 0x10001 (PUBLIC CONSTRUCTOR)
  code          -
  registers     : 3
  ins           : 1
  outs          : 1
  insns size    : 14 16-bit code units
  catches       : (none)
  positions     : 
    0x0001 line=32
    0x0004 line=40
    0x0009 line=43
    0x000b line=44
    0x000d line=32
  locals        : 
    0x0000 - 0x000e reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity; 
#2              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'access$0'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;)Lcom/mycompany/fmdelver/core/RootControls;'
  access        : 0x1008 (STATIC SYNTHETIC)
  code          -
  registers     : 2
  ins           : 1
  outs          : 0
  insns size    : 3 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=46
  locals        : 
#3              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'access$1'
  type          : '(Lcom/mycompany/fmdelver/core/DelverActivity;)I'
  access        : 0x1008 (STATIC SYNTHETIC)
  code          -
  registers     : 2
  ins           : 1
  outs          : 0
  insns size    : 3 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=44
  locals        : 

Virtual methods -

0 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)

  name          : 'harnessHTCOneFMRadio'
  type          : '()V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 6
  ins           : 1
  outs          : 2
  insns size    : 62 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=468
    0x0002 line=469
    0x000a line=470
    0x000c line=472
    0x0025 line=473
    0x0028 line=525
    0x0029 line=476
  locals        : 
    0x000a - 0x003e reg=0 LaunchIntent Landroid/content/Intent; 
    0x0002 - 0x003e reg=1 packageString Ljava/lang/String; 
    0x0000 - 0x003e reg=5 this Lcom/mycompany/fmdelver/core/DelverActivity; 
#1              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'harnessXperiaeFMRadio'
  type          : '()V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 6
  ins           : 1
  outs          : 2
  insns size    : 62 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=302
    0x0002 line=303
    0x000a line=304
    0x000c line=306
    0x0025 line=307
    0x0028 line=312
    0x0029 line=310
  locals        : 
    0x000a - 0x003e reg=0 LaunchIntent Landroid/content/Intent; 
    0x0002 - 0x003e reg=1 packageString Ljava/lang/String; 
    0x0000 - 0x003e reg=5 this Lcom/mycompany/fmdelver/core/DelverActivity; 
#2              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'onActivityResult'
  type          : '(IILandroid/content/Intent;)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 4
  ins           : 4
  outs          : 0
  insns size    : 1 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=254
  locals        : 
    0x0000 - 0x0001 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity; 
    0x0000 - 0x0001 reg=1 requestCode I 
    0x0000 - 0x0001 reg=2 resultCode I 
    0x0000 - 0x0001 reg=3 data Landroid/content/Intent; 
#3              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'onCreate'
  type          : '(Landroid/os/Bundle;)V'
  access        : 0x0004 (PROTECTED)
  code          -
  registers     : 11
  ins           : 2
  outs          : 6
  insns size    : 77 16-bit code units
  catches       : 1
    0x000f - 0x0027
      Ljava/lang/Exception; -> 0x0048
  positions     : 
    0x0002 line=54
    0x0005 line=56
    0x0007 line=57
    0x000c line=58
    0x000e line=62
    0x0013 line=63
    0x0015 line=64
    0x0016 line=65
    0x0017 line=66
    0x001b line=67
    0x001d line=63
    0x0024 line=75
    0x0027 line=98
    0x002f line=99
    0x0037 line=134
    0x003d line=135
    0x0044 line=139
    0x0047 line=141
    0x0048 line=76
    0x0049 line=77
  locals        : 
    0x0024 - 0x0027 reg=0 cmd Lcom/stericson/RootTools/execution/JavaCommandCapture; 
    0x0013 - 0x0027 reg=7 shell Lcom/stericson/RootTools/execution/Shell; 
    0x002f - 0x0048 reg=8 subclass Ljava/lang/Thread$UncaughtExceptionHandler; 
    0x0049 - 0x004d reg=6 e Ljava/lang/Exception; 
    0x0000 - 0x004d reg=9 this Lcom/mycompany/fmdelver/core/DelverActivity; 
    0x0000 - 0x004d reg=10 savedInstanceState Landroid/os/Bundle; 
#4              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'onCreateOptionsMenu'
  type          : '(Landroid/view/Menu;)Z'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 4
  ins           : 2
  outs          : 3
  insns size    : 11 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=153
    0x0009 line=154
  locals        : 
    0x0000 - 0x000b reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity; 
    0x0000 - 0x000b reg=3 menu Landroid/view/Menu; 
#5              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'reqSU'
  type          : '()V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 4
  ins           : 1
  outs          : 3
  insns size    : 28 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=260
    0x0007 line=263
    0x000e line=266
    0x0015 line=269
    0x001b line=275
  locals        : 
    0x0007 - 0x001c reg=0 intent Landroid/content/Intent; 
    0x0000 - 0x001c reg=3 this Lcom/mycompany/fmdelver/core/DelverActivity; 
#6              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'setupUIRooted'
  type          : '()V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 3
  ins           : 1
  outs          : 2
  insns size    : 18 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=158
    0x0009 line=159
    0x0011 line=183
  locals        : 
    0x0009 - 0x0012 reg=0 bigRedB Landroid/widget/Button; 
    0x0000 - 0x0012 reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity; 
#7              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'setupUIWithFMRadio'
  type          : '()V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 7
  ins           : 1
  outs          : 2
  insns size    : 82 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=186
    0x0008 line=187
    0x000d line=188
    0x0016 line=189
    0x001e line=201
    0x0027 line=202
    0x002f line=213
    0x0038 line=214
    0x0040 line=229
    0x0049 line=230
    0x0051 line=247
  locals        : 
    0x0027 - 0x0052 reg=0 closeRxB Landroid/widget/Button; 
    0x0016 - 0x0052 reg=1 createRxB Landroid/widget/Button; 
    0x0038 - 0x0052 reg=2 harnessFMRadioB Landroid/widget/Button; 
    0x0008 - 0x0052 reg=3 introTV Landroid/widget/TextView; 
    0x0049 - 0x0052 reg=4 testV4L2FMRadioB Landroid/widget/Button; 
    0x0000 - 0x0052 reg=6 this Lcom/mycompany/fmdelver/core/DelverActivity; 
#8              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'setupUIWithoutRadio'
  type          : '()V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 4
  ins           : 1
  outs          : 2
  insns size    : 31 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=278
    0x0008 line=279
    0x000d line=280
    0x0016 line=281
    0x001e line=291
  locals        : 
    0x0016 - 0x001f reg=0 createRxB Landroid/widget/Button; 
    0x0008 - 0x001f reg=1 introTV Landroid/widget/TextView; 
    0x0000 - 0x001f reg=3 this Lcom/mycompany/fmdelver/core/DelverActivity; 
#9              : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
  name          : 'testMagicIntent'
  type          : '(I)V'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 6
  ins           : 2
  outs          : 3
  insns size    : 40 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=144
    0x0007 line=145
    0x000c line=146
    0x0020 line=147
    0x0027 line=148
  locals        : 
    0x0007 - 0x0028 reg=0 intent Landroid/content/Intent; 
    0x0000 - 0x0028 reg=4 this Lcom/mycompany/fmdelver/core/DelverActivity; 
    0x0000 - 0x0028 reg=5 action I 

source_file_idx : 33 (DelverActivity.java)

Class #10 - Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Ljava/io/FilenameFilter;'

Static fields - Instance fields -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;)

  name          : 'this$1'
  type          : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;'
  access        : 0x1010 (FINAL SYNTHETIC)
#1              : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;)
  name          : 'val$fileNamePrefix'
  type          : 'Ljava/lang/String;'
  access        : 0x1012 (PRIVATE FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;)

  name          : '<init>'
  type          : '(Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;Ljava/lang/String;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 3
  ins           : 3
  outs          : 1
  insns size    : 8 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0004 line=173
  locals        : 
    0x0000 - 0x0008 reg=0 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1; 

Virtual methods -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;)

  name          : 'accept'
  type          : '(Ljava/io/File;Ljava/lang/String;)Z'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 4
  ins           : 3
  outs          : 2
  insns size    : 7 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=176
  locals        : 
    0x0000 - 0x0007 reg=1 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1; 
    0x0000 - 0x0007 reg=2 dir Ljava/io/File; 
    0x0000 - 0x0007 reg=3 filename Ljava/lang/String; 

source_file_idx : 163 (RootClass.java)

Class #11 - Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;' Access flags : 0x0000 () Superclass : 'Ljava/lang/Object;' Interfaces -

0 : 'Ljava/io/FileFilter;'

Static fields - Instance fields -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;)

  name          : 'this$1'
  type          : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;)

  name          : '<init>'
  type          : '(Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)V'
  access        : 0x10000 (CONSTRUCTOR)
  code          -
  registers     : 2
  ins           : 2
  outs          : 1
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=1
    0x0002 line=260
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2; 

Virtual methods -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;)

  name          : 'accept'
  type          : '(Ljava/io/File;)Z'
  access        : 0x0001 (PUBLIC)
  code          -
  registers     : 3
  ins           : 2
  outs          : 1
  insns size    : 5 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=263
  locals        : 
    0x0000 - 0x0005 reg=1 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2; 
    0x0000 - 0x0005 reg=2 pathname Ljava/io/File; 

source_file_idx : 163 (RootClass.java)

Class #12 - Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;' Access flags : 0x0001 (PUBLIC) Superclass : 'Ljava/lang/Object;' Interfaces - Static fields -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)

  name          : '$SWITCH_TABLE$com$stericson$RootTools$containers$RootClass$READ_STATE'
  type          : '[I'
  access        : 0x100a (PRIVATE STATIC SYNTHETIC)

Instance fields -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)

  name          : 'AVOIDDIRPATH'
  type          : 'Ljava/lang/String;'
  access        : 0x0012 (PRIVATE FINAL)
#1              : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
  name          : 'classFiles'
  type          : 'Ljava/util/List;'
  access        : 0x0002 (PRIVATE)

Direct methods -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)

  name          : '$SWITCH_TABLE$com$stericson$RootTools$containers$RootClass$READ_STATE'
  type          : '()[I'
  access        : 0x1008 (STATIC SYNTHETIC)
  code          -
  registers     : 3
  ins           : 0
  outs          : 1
  insns size    : 37 16-bit code units
  catches       : 2
    0x000c - 0x0015
      Ljava/lang/NoSuchFieldError; -> 0x0023
    0x0015 - 0x001e
      Ljava/lang/NoSuchFieldError; -> 0x0021
  positions     : 
    0x0000 line=60
  locals        : 
#1              : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
  name          : '<init>'
  type          : '()V'
  access        : 0x10001 (PUBLIC CONSTRUCTOR)
  code          -
  registers     : 18
  ins           : 1
  outs          : 3
  insns size    : 766 16-bit code units
  catches       : 2
    0x0203 - 0x020a
      Ljava/io/IOException; -> 0x02fb
      Ljava/lang/InterruptedException; -> 0x02f8
    0x0243 - 0x024a
      Ljava/io/IOException; -> 0x02f5
      Ljava/lang/InterruptedException; -> 0x02f2
  positions     : 
    0x0000 line=65
    0x0003 line=62
    0x0024 line=66
    0x002b line=67
    0x0034 line=68
    0x0044 line=69
    0x004b line=70
    0x004f line=71
    0x0051 line=73
    0x005e line=74
    0x006a line=75
    0x0076 line=76
    0x0082 line=77
    0x0088 line=73
    0x008c line=78
    0x0099 line=79
    0x00a5 line=80
    0x00b1 line=81
    0x00bd line=82
    0x00c3 line=78
    0x00c7 line=83
    0x00d4 line=84
    0x00e0 line=85
    0x00ec line=86
    0x00f8 line=87
    0x00fe line=83
    0x0102 line=88
    0x010f line=89
    0x011b line=90
    0x0127 line=91
    0x0133 line=92
    0x0139 line=88
    0x013d line=93
    0x014a line=94
    0x0156 line=95
    0x0162 line=96
    0x016e line=97
    0x0174 line=93
    0x0178 line=99
    0x018c line=100
    0x018e line=101
    0x0190 line=102
    0x01c7 line=101
    0x01ca line=104
    0x01d8 line=107
    0x01dc line=108
    0x01e6 line=109
    0x01ed line=111
    0x01f5 line=109
    0x01fb line=129
    0x0200 line=130
    0x0203 line=132
    0x020a line=135
    0x0211 line=136
    0x0213 line=137
    0x0217 line=138
    0x0221 line=139
    0x0228 line=140
    0x0238 line=139
    0x023e line=151
    0x0243 line=153
    0x024a line=156
    0x0251 line=157
    0x0252 line=99
    0x0255 line=104
    0x025b line=105
    0x0273 line=115
    0x0278 line=116
    0x027d line=117
    0x0282 line=118
    0x0287 line=119
    0x028a line=120
    0x028d line=121
    0x0290 line=122
    0x0293 line=123
    0x0296 line=124
    0x02a4 line=127
    0x02b2 line=124
    0x02b8 line=125
    0x02c0 line=144
    0x02c4 line=145
    0x02cb line=146
    0x02d0 line=147
    0x02d5 line=148
    0x02f0 line=144
    0x02f2 line=154
    0x02f8 line=133
  locals        : 
    0x01ca - 0x01fb reg=13 sb Ljava/lang/StringBuilder; 
    0x01fb - 0x0216 reg=3 cmd [Ljava/lang/String; 
    0x023e - 0x024a reg=3 cmd [Ljava/lang/String; 
    0x0243 - 0x024a reg=4 dexBuilder Ljava/lang/ProcessBuilder; 
    0x0200 - 0x024a reg=6 jarBuilder Ljava/lang/ProcessBuilder; 
    0x018c - 0x024a reg=7 onWindows Z 
    0x008c - 0x024a reg=8 rc1 Ljava/lang/String; 
    0x00c7 - 0x024a reg=9 rc2 Ljava/lang/String; 
    0x0102 - 0x024a reg=10 rc3 Ljava/lang/String; 
    0x013d - 0x024a reg=11 rc4 Ljava/lang/String; 
    0x0178 - 0x024a reg=12 rc5 Ljava/lang/String; 
    0x025b - 0x0273 reg=5 file Ljava/io/File; 
    0x0255 - 0x0273 reg=13 sb Ljava/lang/StringBuilder; 
    0x02b0 - 0x02b2 reg=3 cmd [Ljava/lang/String; 
    0x0278 - 0x02c0 reg=1 al Ljava/util/ArrayList; Ljava/util/ArrayList<Ljava/lang/String;>;
    0x02b8 - 0x02c0 reg=5 file Ljava/io/File; 
    0x02c0 - 0x02c3 reg=3 cmd [Ljava/lang/String; 
    0x02f2 - 0x02f8 reg=4 dexBuilder Ljava/lang/ProcessBuilder; 
    0x004f - 0x02fe reg=2 builtPath Ljava/io/File; 
    0x02f0 - 0x02fe reg=3 cmd [Ljava/lang/String; 
    0x02c0 - 0x02fe reg=6 jarBuilder Ljava/lang/ProcessBuilder; 
    0x0255 - 0x02fe reg=7 onWindows Z 
    0x0252 - 0x02fe reg=8 rc1 Ljava/lang/String; 
    0x0252 - 0x02fe reg=9 rc2 Ljava/lang/String; 
    0x0252 - 0x02fe reg=10 rc3 Ljava/lang/String; 
    0x0252 - 0x02fe reg=11 rc4 Ljava/lang/String; 
    0x0252 - 0x02fe reg=12 rc5 Ljava/lang/String; 
    0x0000 - 0x02fe reg=17 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder; 

Virtual methods -

0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)

  name          : 'getBuiltPath'
  type          : '()Ljava/io/File;'
  access        : 0x0004 (PROTECTED)
  code          -
  registers     : 7
  ins           : 1
  outs          : 2
  insns size    : 124 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=256
    0x0001 line=258
    0x001d line=259
    0x0023 line=260
    0x002c line=266
    0x002f line=267
    0x0056 line=270
    0x0058 line=271
    0x0074 line=272
    0x007a line=273
    0x007b line=277
  locals        : 
    0x0001 - 0x0031 reg=2 foundPath Ljava/io/File; 
    0x002c - 0x0056 reg=0 children [Ljava/io/File; 
    0x0074 - 0x007b reg=1 eclipsePath Ljava/io/File; 
    0x0056 - 0x007c reg=2 foundPath Ljava/io/File; 
    0x001d - 0x007c reg=3 ideaPath Ljava/io/File; 
    0x0000 - 0x007c reg=6 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder; 
#1              : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
  name          : 'getPathToDx'
  type          : '()Ljava/lang/String;'
  access        : 0x0004 (PROTECTED)
  code          -
  registers     : 16
  ins           : 1
  outs          : 2
  insns size    : 159 16-bit code units
  catches       : (none)
  positions     : 
    0x0003 line=224
    0x0009 line=225
    0x000b line=226
    0x0013 line=228
    0x0014 line=229
    0x0036 line=230
    0x0037 line=231
    0x003b line=249
    0x003d line=250
    0x0045 line=231
    0x0047 line=233
    0x0051 line=234
    0x0059 line=235
    0x005c line=236
    0x0065 line=237
    0x0068 line=238
    0x006f line=241
    0x0071 line=242
    0x008e line=243
    0x0099 line=244
    0x009a line=245
    0x009b line=231
    0x009e line=252
  locals        : 
    0x008e - 0x009b reg=7 tentativePath Ljava/lang/String; 
    0x0047 - 0x009e reg=2 file Ljava/io/File; 
    0x0059 - 0x009e reg=5 sdkVersion I 
    0x0051 - 0x009e reg=6 sdkVersionBits [Ljava/lang/String; 
    0x0009 - 0x009f reg=0 androidHome Ljava/lang/String; 
    0x0014 - 0x009f reg=1 dxPath Ljava/lang/String; 
    0x0036 - 0x009f reg=3 files [Ljava/io/File; 
    0x0037 - 0x009f reg=4 recentSdkVersion I 
    0x0000 - 0x009f reg=15 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder; 
#2              : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
  name          : 'hasClassAnnotation'
  type          : '(Ljava/io/File;)Z'
  access        : 0x0004 (PROTECTED)
  code          -
  registers     : 12
  ins           : 2
  outs          : 2
  insns size    : 134 16-bit code units
  catches       : 1
    0x0009 - 0x0073
      Ljava/io/FileNotFoundException; -> 0x0074
      Ljava/io/IOException; -> 0x0079
  positions     : 
    0x0001 line=190
    0x0003 line=191
    0x0009 line=193
    0x0013 line=195
    0x0019 line=220
    0x001a line=196
    0x0028 line=198
    0x0031 line=199
    0x0033 line=200
    0x0034 line=202
    0x0038 line=203
    0x003e line=204
    0x0057 line=205
    0x0059 line=208
    0x0062 line=209
    0x006e line=208
    0x0071 line=210
    0x0074 line=215
    0x0075 line=216
    0x0079 line=217
    0x007a line=218
    0x007e line=196
  locals        : 
    0x0017 - 0x0019 reg=1 line Ljava/lang/String; 
    0x0013 - 0x0019 reg=5 reader Ljava/io/BufferedReader; 
    0x001a - 0x0074 reg=1 line Ljava/lang/String; 
    0x0038 - 0x0074 reg=2 m Ljava/util/regex/Matcher; 
    0x001a - 0x0074 reg=5 reader Ljava/io/BufferedReader; 
    0x0075 - 0x0079 reg=0 e Ljava/io/FileNotFoundException; 
    0x007a - 0x0086 reg=0 e Ljava/io/IOException; 
    0x0009 - 0x0086 reg=3 p Ljava/util/regex/Pattern; 
    0x0003 - 0x0086 reg=4 readState Lcom/stericson/RootTools/containers/RootClass$READ_STATE; 
    0x0000 - 0x0086 reg=10 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder; 
    0x0000 - 0x0086 reg=11 file Ljava/io/File; 
#3              : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
  name          : 'lookup'
  type          : '(Ljava/io/File;Ljava/util/List;)V'
  access        : 0x0004 (PROTECTED)
  code          -
  registers     : 18
  ins           : 3
  outs          : 3
  insns size    : 173 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=160
    0x000c line=161
    0x0010 line=162
    0x0015 line=187
    0x0016 line=162
    0x0018 line=163
    0x001e line=164
    0x002b line=165
    0x0030 line=162
    0x0034 line=169
    0x0040 line=170
    0x0046 line=171
    0x0052 line=172
    0x0076 line=173
    0x007f line=179
    0x0085 line=180
    0x00aa line=179
  locals        : 
    0x007f - 0x00ad reg=1 classAndInnerClassFiles [Ljava/io/File; 
    0x0076 - 0x00ad reg=2 compiledPath Ljava/io/File; 
    0x000c - 0x00ad reg=3 desourcedPath Ljava/lang/String; 
    0x0018 - 0x00ad reg=4 file Ljava/io/File; 
    0x0052 - 0x00ad reg=5 fileNamePrefix Ljava/lang/String; 
    0x0010 - 0x00ad reg=6 files [Ljava/io/File; 
    0x0085 - 0x00ad reg=7 matchingFile Ljava/io/File; 
    0x0000 - 0x00ad reg=15 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder; 
    0x0000 - 0x00ad reg=16 path Ljava/io/File; 
    0x0000 - 0x00ad reg=17 fileList Ljava/util/List; Ljava/util/List<Ljava/io/File;>;

source_file_idx : 163 (RootClass.java)

Class #13 - Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass$RootArgs;' Access flags : 0x0001 (PUBLIC) Superclass : 'Ljava/lang/Object;' Interfaces - Static fields - Instance fields -

0 : (in Lcom/stericson/RootTools/containers/RootClass$RootArgs;)

  name          : 'args'
  type          : '[Ljava/lang/String;'
  access        : 0x0001 (PUBLIC)
#1              : (in Lcom/stericson/RootTools/containers/RootClass$RootArgs;)
  name          : 'this$0'
  type          : 'Lcom/stericson/RootTools/containers/RootClass;'
  access        : 0x1010 (FINAL SYNTHETIC)

Direct methods -

0 : (in Lcom/stericson/RootTools/containers/RootClass$RootArgs;)

  name          : '<init>'
  type          : '(Lcom/stericson/RootTools/containers/RootClass;)V'
  access        : 0x10001 (PUBLIC CONSTRUCTOR)
  code          -
  registers     : 2
  ins           : 2
  outs          : 1
  insns size    : 6 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=46
  locals        : 
    0x0000 - 0x0006 reg=0 this Lcom/stericson/RootTools/containers/RootClass$RootArgs; 

Virtual methods - source_file_idx : 163 (RootClass.java)

Class #14 - Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass;' Access flags : 0x0001 (PUBLIC) Superclass : 'Ljava/lang/Object;' Interfaces - Static fields -

0 : (in Lcom/stericson/RootTools/containers/RootClass;)

  name          : 'PATH_TO_DX'
  type          : 'Ljava/lang/String;'
  access        : 0x0008 (STATIC)

Instance fields - Direct methods -

0 : (in Lcom/stericson/RootTools/containers/RootClass;)

  name          : '<clinit>'
  type          : '()V'
  access        : 0x10008 (STATIC CONSTRUCTOR)
  code          -
  registers     : 1
  ins           : 0
  outs          : 0
  insns size    : 5 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=24
  locals        : 
#1              : (in Lcom/stericson/RootTools/containers/RootClass;)
  name          : '<init>'
  type          : '([Ljava/lang/String;)V'
  access        : 0x10001 (PUBLIC CONSTRUCTOR)
  code          -
  registers     : 10
  ins           : 2
  outs          : 5
  insns size    : 49 16-bit code units
  catches       : (none)
  positions     : 
    0x0002 line=27
    0x0005 line=35
    0x0007 line=36
    0x000c line=37
    0x0013 line=38
    0x001b line=39
    0x001f line=40
    0x0029 line=41
    0x0030 line=42
  locals        : 
    0x000c - 0x0031 reg=0 actualArgs Lcom/stericson/RootTools/containers/RootClass$RootArgs; 
    0x0029 - 0x0031 reg=1 classConstructor Ljava/lang/reflect/Constructor; Ljava/lang/reflect/Constructor<_>;
    0x001f - 0x0031 reg=2 classHandler Ljava/lang/Class; Ljava/lang/Class<_>;
    0x0007 - 0x0031 reg=3 className Ljava/lang/String; 
    0x0000 - 0x0031 reg=8 this Lcom/stericson/RootTools/containers/RootClass; 
    0x0000 - 0x0031 reg=9 args [Ljava/lang/String; 
#2              : (in Lcom/stericson/RootTools/containers/RootClass;)
  name          : 'displayError'
  type          : '(Ljava/lang/Exception;)V'
  access        : 0x0008 (STATIC)
  code          -
  registers     : 4
  ins           : 1
  outs          : 2
  insns size    : 34 16-bit code units
  catches       : (none)
  positions     : 
    0x0000 line=53
    0x001e line=54
    0x0021 line=55
  locals        : 
    0x0000 - 0x0022 reg=3 e Ljava/lang/Exception; 
#3              : (in Lcom/stericson/RootTools/containers/RootClass;)
  name          : 'main'
  type          : '([Ljava/lang/String;)V'
  access        : 0x0009 (PUBLIC STATIC)
  code          -
  registers     : 3
  ins           : 1
  outs          : 2
  insns size    : 20 16-bit code units
  catches       : 1
    0x0000 - 0x000e
      Ljava/lang/Exception; -> 0x000f
  positions     : 
    0x0000 line=285
    0x0003 line=286
    0x0008 line=294
    0x0009 line=289
    0x000f line=291
    0x0010 line=292
  locals        : 
    0x0010 - 0x0014 reg=0 e Ljava/lang/Exception; 
    0x0000 - 0x0014 reg=2 args [Ljava/lang/String; 

Virtual methods - source_file_idx : 163 (RootClass.java)

Class #15 - Class descriptor : 'Lcom/stericson/RootToolsTests/NativeJavaClass;' Access flags : 0x0001 (PUBLIC) Superclass : 'Ljava/lang/Object;' Interfaces - Static fields - Instance fields - Direct methods -

0 : (in Lcom/stericson/RootToolsTests/NativeJavaClass;)

  name          : '<init>'
  type          : '(Lcom/stericson/RootTools/containers/RootClass$RootArgs;)V'
  access        : 0x10001 (PUBLIC CONSTRUCTOR)
  code          -
  registers     : 15
  ins           : 2
  outs          : 2
  insns size    : 128 16-bit code units
  catches       : 1
    0x0041 - 0x005a
      Ljava/io/IOException; -> 0x0074
  positions     : 
    0x0000 line=13
    0x0003 line=14
    0x000a line=15
    0x000c line=16
    0x0011 line=17
    0x0015 line=18
    0x0017 line=19
    0x001e line=20
    0x0022 line=23
    0x0029 line=24
    0x0041 line=26
    0x0046 line=27
    0x004b line=28
    0x0050 line=29
    0x0053 line=30
    0x005a line=37
    0x005b line=20
    0x005d line=21
    0x0071 line=20
    0x0074 line=31
    0x0075 line=32
    0x007c line=33
  locals        : 
    0x0041 - 0x005a reg=3 f2 Ljava/io/File; 
    0x0046 - 0x005a reg=4 filewriter Ljava/io/FileWriter; 
    0x004b - 0x005a reg=6 out Ljava/io/BufferedWriter; 
    0x005d - 0x0074 reg=0 af Ljava/lang/String; 
    0x0075 - 0x0080 reg=1 e Ljava/io/IOException; 
    0x0011 - 0x0080 reg=2 f Ljava/io/File; 
    0x0074 - 0x0080 reg=3 f2 Ljava/io/File; 
    0x0015 - 0x0080 reg=5 fl [Ljava/lang/String; 
    0x000c - 0x0080 reg=7 p Ljava/lang/String; 
    0x0000 - 0x0080 reg=13 this Lcom/stericson/RootToolsTests/NativeJavaClass; 
    0x0000 - 0x0080 reg=14 args Lcom/stericson/RootTools/containers/RootClass$RootArgs; 

Virtual methods - source_file_idx : 154 (NativeJavaClass.java) [/CODE]

DelverActivity.RootToolsTest should be the only RootClass.Candidate annotated class in my source. NativeJavaClass is from the RootTools test package.

Any ideas would be much appreciated, thanks!

TheNetStriker commented 10 years ago

I also get this error on my Sony Xperia Z2 using the latest Cyanogenmod 11. My Root class is very simple:

package com.example.myapp;

import com.stericson.RootTools.containers.RootClass;

@RootClass.Candidate public class RootTest { public static void main (String [] args) { System.out.println("Test"); } }

When I execute this class I also get the error message. Here is my log output:

06-25 11:38:17.167: D/RootTools v3.4(22124): Starting Root Shell! 06-25 11:38:17.167: D/RootTools v3.4(22124): Starting shell: su 06-25 11:38:17.177: D/su(22150): su invoked. 06-25 11:38:17.177: D/su(22150): starting daemon client 10214 10214 06-25 11:38:17.177: D/su(22153): remote pid: 22150 06-25 11:38:17.177: D/su(22153): remote pts_slave: 06-25 11:38:17.177: D/su(22153): waiting for child exit 06-25 11:38:17.177: D/su(22155): su invoked. 06-25 11:38:17.187: D/su(22155): db allowed 06-25 11:38:17.187: D/su(22155): 10214 /system/xbin/su executing 0 /system/bin/sh using binary /system/bin/sh : sh 06-25 11:38:17.187: D/RootTools v3.4(22124): CommandHandler not created 06-25 11:38:17.197: D/RootTools v3.4(22124): Executing: dalvikvm -cp /data/data/com.example.myapp/files/anbuild.dex com.android.internal.util.WithFramework com.stericson.RootTools.containers.RootClass com.example.myapp.RootTest 06-25 11:38:17.197: D/RootTools v3.4(22124): Checking for Root access 06-25 11:38:17.207: D/RootTools v3.4(22124): CommandHandler not created 06-25 11:38:17.207: D/RootTools v3.4(22124): Using Existing Root Shell! 06-25 11:38:17.207: D/RootTools v3.4(22124): Command is in position 1 currently executing command at position 1 06-25 11:38:17.217: D/RootTools v3.4(22124): Executing: id 06-25 11:38:17.237: D/dalvikvm(22166): Trying to load lib libjavacore.so 0x0 06-25 11:38:17.247: D/dalvikvm(22166): Added shared lib libjavacore.so 0x0 06-25 11:38:17.257: D/dalvikvm(22166): Trying to load lib libnativehelper.so 0x0 06-25 11:38:17.257: D/dalvikvm(22166): Added shared lib libnativehelper.so 0x0 06-25 11:38:17.257: D/dalvikvm(22166): No JNI_OnLoad found in libnativehelper.so 0x0, skipping init 06-25 11:38:17.287: W/dalvikvm(22166): threadid=1: thread exiting with uncaught exception (group=0xb5e05ce0) 06-25 11:38:17.287: D/Command(22124): ID: 43, java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass 06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.Class.classForName(Native Method) 06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.Class.forName(Class.java:251) 06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.Class.forName(Class.java:216) 06-25 11:38:17.287: D/Command(22124): ID: 43, at com.android.internal.util.WithFramework.main(WithFramework.java:36) 06-25 11:38:17.287: D/Command(22124): ID: 43, at dalvik.system.NativeStart.main(Native Method) 06-25 11:38:17.287: D/Command(22124): ID: 43, Caused by: java.lang.NoClassDefFoundError: com/stericson/RootTools/containers/RootClass 06-25 11:38:17.287: D/Command(22124): ID: 43, ... 5 more 06-25 11:38:17.287: D/Command(22124): ID: 43, Caused by: java.lang.ClassNotFoundException: Didn't find class "com.stericson.RootTools.containers.RootClass" on path: DexPathList[[dex file "dalvik.system.DexFile@b5e0f7b8"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 06-25 11:38:17.287: D/Command(22124): ID: 43, at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 06-25 11:38:17.287: D/Command(22124): ID: 43, ... 5 more 06-25 11:38:17.497: D/RootTools v3.4(22124): Command 43 finished.

What am I doing wrong?

v-yadli commented 10 years ago

I got it working. Was having the same problem. And I had a guess that "since the RootClass isn't found, let's put it into the anbuild.dex" -- and it works.

Comment out the AVOIDPATH, and then add annotation for itself. Hack the lookup routine so that it catches itself.

v-yadli commented 10 years ago

A better solution:

  1. Create a new android project, and put RootClass in it. (for runtime)
  2. Create a new Java project, and put RootClass in it. (for compile)
  3. Make your project extract anbuild.dex manually. (It doesn't seem to extract automatically here) Extract it under getActivity().getFilesDir()
  4. Hack the Java side to copy the android project .class files to your target build path before building the jar
  5. Run it in your target path
  6. Clean you project, rebuild
  7. Test it. =)
Stericson commented 9 years ago

@Fusion Can you confirm whether this is still an open issue or can be closed?