【问题标题】:Adding a new app to AOSP向 AOSP 添加新应用
【发布时间】:2015-09-06 23:53:33
【问题描述】:

我已经能够构建 AOSP。但是,我正在尝试将此应用程序添加到 AOSP 并使用 mm ghetto-unlock 构建它,但我收到了无法找到符号且 @Override 方法没有覆盖任何内容的错误。我相当确定问题是该应用程序没有与正确的库或 API 绑定,但我不确定我做错了什么。任何帮助将不胜感激。

【问题讨论】:

  • 你需要这两个库:libs/sc-light-jdk15on-1.47.0.2.jar libs/scprov-jdk15on-1.47.0.2.jar

标签: android system android-source


【解决方案1】:

首先确保你有这些库:libs/sc-light-jdk15on-1.47.0.2.jar libs/scprov-jdk15on-1.47.0.2.jar

Override 问题是 AOSP 主分支将 TrustAgentService 的方法“onSetTrustAgentFeaturesEnabled”更改为“onConfigure”,与棒棒糖发布分支相比。(lollipop,master)

所以修改 GhettoTrustAgent.java 如下所示,它应该没有错误地构建。

import android.os.PersistableBundle;
import java.util.List;

......

//@Override
//public boolean onSetTrustAgentFeaturesEnabled(Bundle options) {
//    Log.v(TAG, "Policy options received: " + options.getStringArrayList(KEY_FEATURES));
//
//    return true; // inform DPM that we support it
//}

@Override
public boolean onConfigure(List<PersistableBundle> options) {
    return true; // inform DPM that we support it
}

......

使其成为系统应用并打包到system.img中。

  1. Android.mk,把这两行改成这样:

  2. 创建一个名为 proguard.flags 的新文件及其内容:

  3. 修改布局文件,所有android:text都要本地化,像这样android:text="@string/string_name"

  4. 修改[aosp_root]/build/target/product/full_base.mk,添加你的包名:

就是这样。现在使用 mm/mmm 构建它,它应该安装在 system/app 中,并且在使用 make 运行完整构建时应该打包在 system.img 中。

【讨论】:

  • btw,你知道为什么我重建aosp时它不会自动添加为系统应用吗?我必须手动安装它。我尝试将包名称添加到 device.mk 中,但似乎没有任何作用。
  • 您可以在附图中看到apk安装在data/app/中,这是因为Android.mk定义了“LOCAL_MODULE_TAGS=tests”。要使其成为系统应用程序有几个步骤,请参阅答案中的详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2021-06-23
  • 1970-01-01
相关资源
最近更新 更多