2014-02-27 43 views
0

扔我也跟着上了RootTools usagerun Java as root维基页面方向,但是当我载入我的应用程序中的onCreate()下面我得到一个ClassNotFoundException:com.stericson.RootTools.containers.RootClass:的ClassNotFoundException通过RootTools在JavaCommandCapture

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"); 
    } 
} 

同样的事情发生时,我试图RootTools'测试类com.stericson.RootToolsTests.NativeJavaClass。我已经尝试了许多配置来放置和包含RootTools.jar文件(最显着的是确保RootTools jar被检查导出并移动到Eclipse中的订单和导出列表的顶部),但是ClassNotFoundException仍然存在。确切的logcat的输出如下:

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. 

我的.classpath的样子:

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
<classpathentry exported="true" kind="lib" path="/Users/myhome/devel_resources 
/code/RootTools/RootTools-3.4.jar"/> 
    <classpathentry kind="src" path="src"/> 
<classpathentry kind="src" path="gen"/> 
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> 
<classpathentry exported="true" kind="con" 
path="com.android.ide.eclipse.adt.LIBRARIES"/> 
<classpathentry exported="true" kind="con" 
path="com.android.ide.eclipse.adt.DEPENDENCIES"/> 
<classpathentry kind="output" path="bin/classes"/> 
</classpath> 

我开发的系统配置如下: 操作系统:Mac OS X 10.9.2 的Eclipse:开普勒 ADT: 22.3 RootTools版本:3.4

,我的目标平台:Android的 4.1.1 型号:索尼的XperiaêC1504(使用植根SRSRoot和“甘道夫”漏洞) 固件:股票内核的XperiaËC1505_11.3.A.0.47(应该为C1504以及工作)

任何想法,为什么安卓找不到com.stericson.RootTools。 containers.RootClass类?

+0

我知道这已经过了一年了,但您很可能没有将您的dex文件复制到应用程序的文件目录中。 –

回答

0

发生在我身上的jar文件被破坏,并且.class文件在物理上不存在。究竟是什么例外告诉你。

+0

欢迎来到Stack Overflow。请添加更多细节(如何找到它,如何修正它),即使听起来很明显。如果您不希望您的回答被删除,请添加更多信息。 –

+0

据我所知,该jar文件中存在RootClass.class文件。我重新下载并重新配置我的项目来检查和结果是相同的(ClassNotFoundException) – CCJ

相关问题