在ICS AOSP中对个人应用程序(电话,联系人)进行UI修改

Meh*_*sar 6 android android-source

我已经成功修改了AOSP的一些应用程序(启动器,短信,图库,电子邮件,日历),但我遇到了修改Phone,Contacts应用程序的问题.

我已经完成以下步骤来修改Launcher,SMS,Gallery,Email,Calendar应用程序:

  1. 我已经下载了ICS AOSP并在eclipse中导入了个人应用程序.
  2. 我已将包名称更改com.android.launcher2com.test.launcher2
  3. Step 1Step 2,我是在因为思念框架classes.I的单个应用程序面临的错误都在我的应用程序导入这些缺课解决它们.
  4. 我修改了我的应用程序的UI.
  5. 我已经在模拟器上运行了应用程序.它运行正常.

现在,我在修改联系人,手机应用程序时遇到问题Step 3:

- >当我导入java.*javax.*删除我的应用程序中缺少的框架类时,控制台会通过错误通知我Ill-advised or mistaken usage of a core class (java.* or javax.*) when not building a core library.

- >为了克服这些问题,我试图包含几个在Android.mk文件中指定的jar库,并在构建下载的AOSP(ICS)时生成.但它没有解决我的问题.

- >我想com.android.phone.commonjar文件可能会解决问题,但我无法解决它,因为我怀疑那个文件中缺少的类是我从build.So我试图在互联网上找到它几天,但我不能找不到它.如果有人拥有这个jar文件的完整(工作)版本,请分享.

注意:我的开发机器有Windows 7.我的短期目标是修改Contact,Phone应用程序的UI并运行它.

编辑: Buildpath的屏幕截图 在此输入图像描述 在此输入图像描述

编辑将TimSort.java放入默认包后

在此输入图像描述

我在github演示中也描述了这一步,并说"当我导入TimSort.java时,它试图访问Arrays.java类的一些隐藏方法,所以我需要导入该类".这个错误是我创建java的原因.util包中包含Arrays.java class.otherwise我很高兴导入TimSort.java.by的方式,在截图中我们可以看到comment哪些内容特别关于接下来的2个方法

Sta*_*kER 5

正如我在上一篇评论中所说,主要问题是你包含java.*和javax.*,它已经存在于android.jar中.因此,构建器认为您正在构建核心库而不是.

我只是删除项目中的java.util.*包.没有错误.android.jar已经包含了很多包,包括java.xxx和javax.xxx.如果确实需要使用缺少的java核心库,请尝试重构.

Eclipse快照

我检查了Android源代码,dx将首先通过调用来检查源代码的名称:

private static void checkClassName(String name) {
    boolean bogus = false;

    if (name.startsWith("java/")) {
        bogus = true;
    } else if (name.startsWith("javax/")) {
        int slashAt = name.indexOf('/', 6);
        if (slashAt == -1) {
            // Top-level javax classes are verboten.
            bogus = true;
        } else {
            String pkg = name.substring(6, slashAt);
            bogus = (Arrays.binarySearch(JAVAX_CORE, pkg) >= 0);
        }
    }

    if (! bogus) {
        return;
    }

    /*
     * The user is probably trying to include an entire desktop
     * core library in a misguided attempt to get their application
     * working. Try to help them understand what's happening.
     */

    DxConsole.err.println("\ntrouble processing \"" + name + "\":\n\n" +
            IN_RE_CORE_CLASSES);
    errors++;
    throw new StopProcessing();
}
Run Code Online (Sandbox Code Playgroud)

IN_RE_CORE_CLASSES是您在控制台中看到的错误字符串.这就解释了为什么它显示错误.

更新:

添加TimSort.java后的屏幕截图.

添加TimSort.java后的屏幕截图