标签: android-build

是否可以将平台签名的应用程序安装到用户空间?

我最近在自定义 Android 版本中遇到了一个奇怪的问题?我已经有一个可用的 ROM 几个月了,使用这个 ROM 我已经能够将平台签名的 apk 安装到用户空间 (/data/app)。最近,在重建 ROM 后,我一直无法安装那些相同的 apk。任何安装平台签名应用程序的尝试(无论是通过 adb install 还是 pm install)都会产生以下消息:

Failure [INSTALL_FAILED_INVALID_INSTALL_LOCATION]
Run Code Online (Sandbox Code Playgroud)

通过Android源代码挖掘后,我发现了以下相关代码块:

if ((compareSignatures(pkg.mSignatures, s1) == PackageManager.SIGNATURE_MATCH)) {
   Slog.w(TAG, "Cannot install platform packages to user storage");
   mLastScanError = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
   return null;
}
Run Code Online (Sandbox Code Playgroud)

根据我的阅读,似乎永远不应该允许在用户空间中安装系统应用程序。最初在用户空间安装系统应用程序的情况是否异常?是否可以在用户空间中安装平台签名的应用程序,如果可以,如何安装?

android android-build apk

5
推荐指数
1
解决办法
3466
查看次数

在 init.rc 中禁用 android 服务

我正在一个新的硬件平台上工作,我需要在该平台上刷新 Android 操作系统。对于初始测试,我需要停止 android init.rc 文件中的所有 Android 服务。我在我的代码库中搜索了 init.rc 文件 ./bootable/diskinstaller/init.rc ./bootable/recovery/etc/init.rc ./system/core/rootdir/init.rc ,我需要知道如何识别 init.rc 中的 android 服务?我正在考虑禁用 android dalvik VM。停止所有与 android 相关的服务是停止 dalvic VM 还是仅一项一项禁用所有服务?谢谢!

android android-build android-source android-service

5
推荐指数
1
解决办法
1万
查看次数

构建android源时超出GC开销限制

****[ 35% 11837/33004] build out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack 
FAILED:/bin/bash -c
"
(mkdir -p out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/)
&& (java -Xmx3500m -jar out/host/linux-x86/framework/jill.jar --output out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack prebuilts/sdk/21/android.jar)
&& (mkdir -p out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (unzip -qo prebuilts/sdk/21/android.jar -d out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (find out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res -iname \"*.class\" -delete)
&& (JACK_VERSION=2.26.RELEASE out/host/linux-x86/bin/jack @build/core/jack-default.args --verbose error -D jack.import.resource.policy=keep-first -D jack.import.type.policy=keep-first --import out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack --import-resource out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res --output-jack out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack)
&& (rm -rf out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.res)
&& (rm out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack.tmpjill.jack)
" GC overhead limit exceeded Try increasing heap size with java option '-Xmx' Warning: This may have produced partial or corrupted output. …

java android-build android-source

5
推荐指数
1
解决办法
1万
查看次数

Android:当我生成签名版本时,APK大小会增加

在此处输入图片说明如果我在android studio中正常生成构建,它将生成具有大小的apk,但是当我为相同的代码生成带签名的apk时,会增加apk的大小吗?

在我的情况下,未签名的apk大小为7856 kb,对于签名的apk则为8680 kb。它增加了824 kb,为什么?

android android-build apk android-install-apk android-studio

5
推荐指数
1
解决办法
534
查看次数

在 Playstore 中更新 apk 时出现警告消息

我在 Playstore 上上传了一个版本的应用程序。我必须上传该应用程序的更新版本,该版本现在具有基于位置的服务(融合位置),因此我对位置进行了权限检查。上传谷歌播放时显示警告。

!添加了新权限警告拥有版本代码为 14 的 APK 的用户可能需要接受一个或多个 android.permission.ACCESS_COARSE_LOCATION 和 android.permission.ACCESS_FINE_LOCATION 权限,这可能导致他们无法升级到此版本的应用程序。提示确保新权限是必需的,并考虑在此版本的新增内容文本中提及这些权限。

这只是提示还是我需要处理的问题?

android android-build google-play google-location-services

5
推荐指数
1
解决办法
5695
查看次数

如何禁用自动修复项目构建配置

我正在使用大型机构建项目。

每次重启后 Android Studio 3.3 预览说

The IDE updated the following run configuration: someConfiguration

并真正改变了它:它增加了新的构建步骤:Gradle 构建。造成工程双建。

如何禁用此自动修复?

android-build android-studio

5
推荐指数
1
解决办法
149
查看次数

对 64 位的支持会在 build.gradle 中添加 ndk.abiFilters 时出错

大多数 android 开发者必须在 2019 年 8 月之前收到来自 Google 的消息,要求更新应用程序以支持 64 位架构。此处提供了详细说明: 确保您的应用程序支持 64 位设备

在我的应用程序中,我发现使用了 32 位库,因此我必须更新应用程序以支持 64 位架构。正如上面指南中所建议的,我在build.gradle文件中添加了以下内容:

ndk.abiFilters = 'armeabi-v7a' 'arm64-v8a' 'x86' 'x86_64'
Run Code Online (Sandbox Code Playgroud)

但是,在那之后,我在构建应用程序时遇到以下错误:

错误:(35, 0) 在 DefaultConfig_Decorated{name=main, dimension=null, minSdkVersion=DefaultApiVersion{mApiLevel=16, mCodename='null'}, targetSdkVersion 上找不到参数 [arm64-v8a] 的方法 armeabi-v7a() =DefaultApiVersion{mApiLevel=28, mCodename='null'}, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptSupportModeBlasEnabled=null, renderscriptNdkModeEnabled=null, versionCode=3, versionName=1.2, applicationId=, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArgu ={}、testHandleProfiling=null、testFunctionalTest=null、signingConfig=null、resConfig=null、mBuildConfigFields={}、mResValues={}、mProguardFiles=[]、mConsumerProguardFiles=[]、mManifestPlaceholders={}、mWearAppUnbundled=null}输入 com.android.build.gradle.internal.dsl。默认配置。

有没有人已经尝试将应用程序更新到 64 位?任何想法,如何解决这个问题?

android android-ndk android-build android-gradle-plugin

5
推荐指数
1
解决办法
7967
查看次数

插件 [id: 'com.gradle.build-scan', version: '1.16'] 未在以下任何来源中找到:

我正在尝试在我遵循此链接的 Android 项目中进行 gradle 构建扫描。

https://scans.gradle.com/

这是我的顶级 gradle 文件。

buildscript {
    ext.kotlin_version = '1.2.71'
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.2.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
    }
}
plugins {
    id 'com.gradle.build-scan' version '1.16'
}
buildScan {
    licenseAgreementUrl = 'https://gradle.com/terms-of-service'
    licenseAgree = 'yes'
}
ext {
    compileSdkVersion = 27
    minSdkVersion = 16
    targetSdkVersion = 27
    zendeskSdkVersion = "2.0.0"
    appCompatVersion = "27.0.2"
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试将项目与 gradle 文件同步时出现此错误

Plugin [id: …
Run Code Online (Sandbox Code Playgroud)

android android-build android-gradle-plugin

5
推荐指数
0
解决办法
6269
查看次数

项目构建期间的 ZipException

我正在更新 3.4 版的 Android Studio 和插件(5.1.1 版的 gradle)当我尝试构建项目时,出现错误

java.util.zip.ZipException:zip 文件为空

我下载了 gradle-5.1.1-all.zip 并尝试替换现有的但没有成功。

任何想法是什么导致此错误?

日志

    Caused by: org.gradle.api.tasks.TaskExecutionException: Execution     failed for task ':app:transformClassesWithDexBuilderForDevDebug'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
    at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)

    *****

    ... 6 more
Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.util.zip.ZipException: zip file is empty
    at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
    at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    *****

Caused by: com.android.build.api.transform.TransformException: java.util.zip.ZipException: zip file is empty
    at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:442)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
    ... 77 …
Run Code Online (Sandbox Code Playgroud)

android gradle android-build build.gradle android-gradle-plugin

5
推荐指数
2
解决办法
1619
查看次数

使用“make project”构建的Android应用程序崩溃,但使用“Run”安装时不会崩溃

我们正在构建一个使用HighCharts Android包装库*的应用程序。在开发过程中,应用程序通过运行命令安装在设备/模拟器上,一切正常。

但是,在创建构建视图Make ProjectGenerate Signed APK或由CI/DC Pipelines生成的构建时- 应用程序总是崩溃。

Highcharts调用时在某处发生崩溃Gson(需要在Gradle构建文件中作为依赖项在外部提供)。Gson然后抛出java.lang.ArrayIndexOutOfBoundsException异常。(下面的堆栈跟踪)

它不是什么:

  1. 与安卓版本无关。在 API 29、25、23 上测试
  2. 与设备无关。发生在运行干净的android 的物理设备和模拟器上。
  3. Proguard相关(我认为) - 也发生在debug构建中,并且keep为了安全起见,还添加了激进的声明。
  4. 相同的图表在我们的网站和 iOS 应用程序上正常工作。

可能相关:

Highcharts Android尚不兼容Hilt DI,它深深嵌入我们的代码中。显然,Highcharst期望Context提供给它的View构造函数的Activity类型是类型,Hilt因为 in 将 aFragmentContextWrapper注入到Fragments带有@AndroidEntryPoint. 此处的说明和解决方法

我想了解的是:

.APK在 …

android highcharts android-build android-highcharts dagger-hilt

5
推荐指数
0
解决办法
126
查看次数