小编rad*_*adu的帖子

Android多片段事务排序

我有一个HorizontalScrollView(水平)LinearLayout我用作添加多个片段的容器.在进行一些更改后,我需要从该容器中删除所有片段并添加新的片段.但是,当我删除旧片段时,排序似乎存在问题.

以下是场景:

  • 应用启动
    • 正确添加片段A1,B1,C1,D1以该顺序
  • 改变内容
    • 如果不去除初始片段,但添加A2,B2,C2(作为单个事务),它会显示A1,B1,C1,D1,A2,B2,C2
    • 如果除去初始片段(作为单独或使用同一个事务),然后加入A2,B2,C2,它会显示C2,B2,A2

现在我找到了一个解决方法,我先添加新的片段,然后删除旧的片段(仍然是同一个事务的一部分)并且正常工作.

编辑: 解决方法不能一直工作.

我正在使用android.support.v4.app.Fragment.

关于发生了什么的任何想法?

android android-fragments

13
推荐指数
1
解决办法
7145
查看次数

gradle assembleRelease 使用错误的密钥/证书

我有一个基于 gradle 的 android 项目并试图生成一个发布 apk。但是,似乎 gradle 以某种方式获取了错误的密钥/证书。

这是我在 build.gradle 中的内容:

signingConfigs {
    release {
        storeFile file("mykey.jks")
        storePassword "mypass"
        keyAlias "mykey.key"
        keyPassword "mypass"
    }
}

buildTypes {
    release {
        debuggable false
        jniDebugBuild false
        runProguard true
        proguardFile getDefaultProguardFile('proguard-android.txt')
        signingConfig signingConfigs.release
    }
}
Run Code Online (Sandbox Code Playgroud)

跑完之后

gradlew assembleRelease
Run Code Online (Sandbox Code Playgroud)

并从 .apk 中取出 META-INF/CERT.RSA 我运行以下命令:

keytool -list -keystore mykey.jks
Run Code Online (Sandbox Code Playgroud)

keytool -printcert -v -file CERT.RSA
Run Code Online (Sandbox Code Playgroud)

但它们产生具有不同证书指纹的输出。尝试使用来自另一个使用相同密钥(但不是使用 gradle)签名的 apk 的证书会产生正确的证书指纹。

Gradle 似乎可以很好地获取密钥库(更改密码或位置或别名使其停止工作)。

我很困惑,因为我不想向商店发布一些用未知密钥签名的东西,然后无法更新它。我没有在 gradle 中明确定义的调试键。

更新:这与密钥库有关。使用新的密钥库和密钥尝试相同的 gradle 代码可以正常工作。这个有问题的密钥库是从 pkcs#12 格式(.p12 文件)导入的。不过,使用 Intellij 或 jarsigner 可以很好地处理此密钥库,只是 gradle …

android signing keytool gradle android-studio

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