首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android.mk文件用于使用UpdateEngine (SystemApi)

Android.mk文件用于使用UpdateEngine (SystemApi)
EN

Stack Overflow用户
提问于 2018-11-04 12:43:21
回答 1查看 1.5K关注 0票数 2

我找到了一个使用OTA更新的例子。但我需要使用android.os.UpdateEngine

这是SystemApi,我找到了这个question on StackOverFlow,其中的答案被写到android.mk文件LOCAL_SDK_VERSION := system_current

我以前从未使用过android.mk文件,所以我创建了它,并将其放到app/android.mk中。

这是我在我的android.mk文件中所拥有的全部内容:

代码语言:javascript
复制
LOCAL_PATH := $(call my-dir)
LOCAL_SDK_VERSION := system_current

我还把它添加到build.gradle文件中(我在我的应用程序中不使用NDK,但我不知道使用android.mk文件的其他方法)。

代码语言:javascript
复制
sourceSets.main {
        jniLibs.srcDir 'src/main/libs' //set libs as .so's location instead of jniLibs
        jni.srcDirs = [] //disable automatic ndk-build call with auto-generated Android.mk
    }
externalNativeBuild {
        ndkBuild {
            path 'Android.mk'
        }
    }

但是无论如何,当我写import android.os.UpdateEngine时,我无法解析符号"UpdateEngine“

我试图在Stack,Google上搜索,但是找不到解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-17 14:00:14

我在没有makefile或NDK的情况下让它工作,方法是使用来自repo: android.jar的修改后的https://github.com/anggrayudi/android-hidden-api文件。

下载适当的android.jar文件,并将其放在项目中的app/libs-sdk中。

将以下依赖项添加到应用程序build.gradle文件中:

代码语言:javascript
复制
compileOnly fileTree(include: ['*.jar'], dir: 'libs-sdk')

在顶级build.gradle文件中,添加以下代码,使Android使用修改后的android.jar。

代码语言:javascript
复制
allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs.add('-Xbootclasspath/p:/android.jar')
        }
    }
}

在这些步骤之后,我可以从我的项目中访问android.os.UpdateEngine类。唯一不能修复的问题是访问一些SystemApi方法(而不是类),例如RecoverySystem#verifyPackageCompatibility。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53140933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档