嗨,我想在android项目中读取核心库android.jar是否有可能。?

时间:2014-06-16 07:47:05

标签: java android

因为我是android的初学者试图从android.jar访问核心库目的是访问jar文件中存在的android.view包的类我尝试了一些代码,但它没有显示类发生了一些错误。 。请检查错误日志。

public class TEST1 {
public static void main() {
    String packname = "android.view";
    String jarfile = "C:/Users/RAMA/Desktop/New folder/adt-bundle-windows-x86_64-20130219/adt-bundle-windows-x86_64-20130219/sdk/platforms/android-17/android.jar";
    JarFile jar = null;
    try {
        jar = new JarFile(jarfile);
    } catch (FileNotFoundException ex) {

    } catch (IOException e) {
        e.printStackTrace();
    }
    java.util.Enumeration enumEntries = jar.entries();
    while (enumEntries.hasMoreElements()) {
        java.util.jar.JarEntry file = (java.util.jar.JarEntry) enumEntries
                .nextElement();
        String nm = file.getName();
        nm = nm.replace('/', '.');
        try {
            if (nm.startsWith(packname)) {
                int stIndx = packname.length();
                String rem = nm.substring(stIndx + 1);
                int idx1 = rem.lastIndexOf('.');
                int idx2 = rem.lastIndexOf('.', idx1 - 1);
                if (rem.endsWith(".class") && idx2 == -1
                        && !rem.contains("$")) {
                    rem = rem.substring(0, rem.length() - 6);
                    String fName = packname + "." + rem;

                    ClassesDisplayActivity.your_array_list3.add(fName);

                     Log.i("Ramu","classname "+ fName.getClass().getName());
                }
            }
        } catch (Exception e) {
        }
    }

}

}

错误日志

06-16 07:54:06.923:E / Trace(1700):错误打开跟踪文件:没有这样的文件或目录(2) 06-16 17:09:51.925:E / Trace(1267):错误打开跟踪文件:没有这样的文件或目录(2) 06-16 17:09:53.505:D / gralloc_goldfish(1267):未检测到GPU仿真的仿真器。 06-16 17:10:3​​1.555:E / Trace(1319):错误打开跟踪文件:没有这样的文件或目录(2) 06-16 17:10:3​​3.155:D / gralloc_goldfish(1319):未检测到GPU仿真的仿真器。 06-16 17:10:40.924:D / dalvikvm(1319):GC_FOR_ALLOC释放69K,8%自由2648K / 2864K,暂停90ms,总计115ms 06-16 17:10:41.204:我/我在displayclass(1319):活动 06-16 17:10:41.326:W / System.err(1319):java.lang.NullPointerException 06-16 17:10:41.374:W / System.err(1319):at com.api.testapp.TEST1.main(TEST1.java:18) 06-16 17:10:41.394:W / System.err(1319):at com.api.testapp.ClassesDisplayActivity.onStart(ClassesDisplayActivity.java:76) 06-16 17:10:41.424:W / System.err(1319):在android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1164) 06-16 17:10:41.424:W / System.err(1319):在android.app.Activity.performStart(Activity.java:5114) 06-16 17:10:41.444:W / System.err(1319):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153) 06-16 17:10:41.444:W / System.err(1319):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 06-16 17:10:41.444:W / System.err(1319):在android.app.ActivityThread.access $ 600(ActivityThread.java:141) 06-16 17:10:41.464:W / System.err(1319):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1234) 06-16 17:10:41.464:W / System.err(1319):在android.os.Handler.dispatchMessage(Handler.java:99) 06-16 17:10:41.464:W / System.err(1319):在android.os.Looper.loop(Looper.java:137) 06-16 17:10:41.464:W / System.err(1319):在android.app.ActivityThread.main(ActivityThread.java:5041) 06-16 17:10:41.494:W / System.err(1319):at java.lang.reflect.Method.invokeNative(Native Method) 06-16 17:10:41.494:W / System.err(1319):at java.lang.reflect.Method.invoke(Method.java:511) 06-16 17:10:41.514:W / System.err(1319):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793) 06-16 17:10:41.514:W / System.err(1319):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 06-16 17:10:41.534:W / System.err(1319):at dalvik.system.NativeStart.main(Native Method) 06-16 17:10:41.994:I / Choreographer(1319):跳过42帧!应用程序可能在其主线程上做了太多工作。

任何人都知道请解决这个问题。

1 个答案:

答案 0 :(得分:0)

请先阅读Java和Android的基础知识。如果您想为Android编码,则无法访问Windows PC的本地文件目录。无论如何,java没有静态主入口点。如果要编写java代码,则不能使用androids库。

你也不应该通过让块空了来忽略异常。