首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android应用程序无法安装

Android应用程序无法安装
EN

Stack Overflow用户
提问于 2015-06-28 22:15:35
回答 2查看 243关注 0票数 1

在为Android开发AIDE应用程序时,我遇到了这个错误。该应用程序将成功编译,但不会安装,并报告了以下错误:

无法以根用户的身份直接运行应用程序。考虑禁用在设置中运行的定向。 警告:链接器: app_process有文本重定位。这是在浪费内存,也是一种安全风险。请修理一下。 pkg: /storage/sdcard/AppProjects/MyProgram/bin/MyProgram.apk 故障INSTALL_FAILED_DEXOPT 带0退出

我研究了导致这种情况的原因,主要是因为“证书错误、尝试放弃包”和“在清单中设置两次权限”等,这些都没有起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-28 22:15:35

我找到了问题所在。在一些代码中,它看起来非常像这样:

代码语言:javascript
复制
public class Builder<T extends Base> {
    private final List<Def1> subDefs1 = new ArrayList<>();
    private final List<Def2> subDefs2 = new ArrayList<>();

    public Builder<T> add(final Collection<Def1> ds) {
        subDefs1.addAll(ds);
        return this;
    }

    public Builder<T> add(final Collection<Def2> ds) {
        subDefs2.addAll(ds);
        return this;
    }
}

interface Base {}

final class Def1 implements Base {}

final class Def2 implements Base {}

我有这些add方法,它们都具有某种类型的Collection。问题一定是与Java的平淡的泛型和dexing过程有关,我猜.

票数 0
EN

Stack Overflow用户

发布于 2015-06-28 22:21:44

您的问题: Java认为您定义了两个具有相同签名的方法。

Java方法签名定义:https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html

方法声明有六个组件,以便: 1.修饰符--例如公共、私有和其他你稍后会学到的。 2.返回类型--方法返回的值的数据类型,如果方法不返回值,则为not。 3.方法名称--字段名的规则也适用于方法名称,但惯例略有不同。 4.括号中的参数列表--以逗号分隔的输入参数列表,在输入参数之前加上数据类型,用括号括起来,()。如果没有参数,则必须使用空括号。

  1. 一个例外列表-待稍后讨论。
  2. 包含在大括号之间的方法体--方法的代码,包括局部变量的声明,都在这里。

正如您在上面看到的,泛型类的规范不是java方法签名的一部分。因此,java检测两个具有相同签名的add-方法。

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

https://stackoverflow.com/questions/31105311

复制
相关文章

相似问题

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