相关疑难解决方法(0)

如何在使用Gradle组装时更改Android应用程序包名称?

是否可以使用Gradle更改Android应用程序的包名称?

我需要编译同一个应用程序的两个副本,具有唯一的包名称(因此我可以向市场发布两次).

android gradle android-build android-gradle-plugin

47
推荐指数
4
解决办法
4万
查看次数

如何在Android设备上管理调试和发布版本?

我是Android开发人员的新手,我几乎准备好发布我的应用程序的第一个版本:)

在我的手机上测试签名版本apk时,它拒绝安装,因为调试版本随调试签名一起安装.

所以我必须卸载调试版本,但它删除了我的所有数据库(它将对我正在测试它的朋友这样做).

有没有办法管理同一个应用程序的调试和发布版本而不会丢失数据?

android conflict device signature

26
推荐指数
2
解决办法
6994
查看次数

发布和调试apks之间的Android L权限冲突

我已经升级到Android L并在"Google Play"中发布了我的应用程序的发布版本以及我们用于开发的调试版本.

它们使用不同的密钥签名.

我的问题是我安装了"Google play"版本,然后当我尝试安装调试版本时,其定义如下:

debug {
        debuggable true
        packageNameSuffix ".debug"
        buildConfigField BOOLEAN, IS_DEV, TRUE
    }
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误:

Failure [INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.app.name.permission.C2D_MESSAGE pkg=com.app.name]
Run Code Online (Sandbox Code Playgroud)

这是有问题的许可:

<permission
    android:name="com.app.name.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>

<uses-permission android:name="com.app.name.permission.C2D_MESSAGE"/>
Run Code Online (Sandbox Code Playgroud)

我知道(http://commonsware.com/blog/2014/08/04/custom-permission-vulnerability-l-developer-preview.html)以及这是由于安全问题而创建的事实,但是我仍然需要能够与每个拥有自己的调试签名密钥的团队合作.

我尝试使用adb uninstall卸载(/sf/answers/1896358691/),我尝试清除设备上的所有应用缓存.

android google-cloud-messaging android-gradle-plugin

14
推荐指数
1
解决办法
4829
查看次数

在Android Studio中无限安装

最近,我正在考虑将我的工作标题从“ Android Developer”更改为“ Endless install progress watcher”。

当我尝试运行我的应用程序或测试Android Studio时,发生的情况越来越频繁,如下图所示:

在此处输入图片说明

这一进步将永远保持下去。过去,如果我断开设备并再次连接,则下一次尝试将成功。现在通常情况下,我需要多次重新连接才能运行。

猜测是问题是由于亚行以某种方式挂起和失去连接,但我不知道该如何克服。

我的配置是:-Ubuntu Linux,但同事在Mac OS上也有相同的体验,例如-Android Studio 3.5-设备是Nexus 5X,但在许多其他设备上也是如此

android adb android-studio

11
推荐指数
1
解决办法
329
查看次数

applicationId显示占位符,表示多个构建版本无法正常工作

我正在修改当前的android项目,因此它可以安装在同一设备上,用于多种口味和构建配置.

的build.gradle:

{
    // ...
    defaultConfig {
        applicationId "com.myapp"
        manifestPlaceholders = [
            manifestApplicationId: "${applicationId}",
            onesignal_app_id: "xxxx",
            onesignal_google_project_number: "xxxx"
        ]
    // ...
    }

    productFlavors {
        production {
            applicationId "com.myapp"
            // ...
        }

        dev {
            applicationId "com.myapp.dev"
            // ...
        }

        // ...
    }

    buildTypes {
        release {
            // ...
        }

        debug {
            applicationIdSuffix ".debug"
            // ...
        }
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml:

<manifest ... >
    <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
    <permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />      
    <!-- ... -->

    <receiver
        android:name="com.onesignal.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action …
Run Code Online (Sandbox Code Playgroud)

android buildconfig gradle android-manifest manifest-merging

7
推荐指数
1
解决办法
6810
查看次数

尝试制作标志apk时"C2D_message并不是唯一的"

我正在尝试发布APK,而我正在尝试生成签名APK我得到此错误

Error:Error: Permission name C2D_MESSAGE is not unique (appears in both com.company.myApp.permission.C2D_MESSAGE and com.company.myApp2.permission.C2D_MESSAGE) [UniquePermission]
Run Code Online (Sandbox Code Playgroud)

这是我的清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.myApp">

    <permission
        android:name="com.company.myApp.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <supports-screens android:smallScreens="true" />
    <supports-screens android:normalScreens="true" />
    <supports-screens android:largeScreens="true" />
    <supports-screens android:xlargeScreens="true" />
    <supports-screens android:anyDensity="true" />

    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SECURE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--<uses-permission android:name="android.permission.INTERNET" />-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.GET_TASKS" …
Run Code Online (Sandbox Code Playgroud)

android release android-c2dm signed-apk

7
推荐指数
1
解决办法
6072
查看次数

Android:亚行更新Google Play服务"失败"

尝试关注此Google+登录教程.


启动应用程序,我收到此错误

您需要更新Google Play服务才能使用此应用程序

  • 按下Update没有任何作用.
  • 忽略此对话框并按下Login应用程序崩溃.

使用Windows 8中的终端更新模拟器上的Play服务,

adb install com.android.vending-20140218.apk ........
失败[INSTALL_FAILED_DUPLICATE_PERMISSION perm = com.google.android.gms.permission.ACTIVITY_RECOGNITION pkg = com.google.android.gms]

adb install com.google.android.gms-20140218.apk .......
失败[INSTALL_FAILED_DUPLICATE_PERMISSION perm = com.android.vending.CHECK_LICENSE pkg = com.android.vending]


我尝试使用adb uninstall和卸载它们,adb install -r但它只是响应

失败


模拟器

  • Nexus 5搭配Android 5.0
  • targetSdk Android 5.0
  • minSdk Android 5.0
  • Buildtools 19.1.0.

android adb

6
推荐指数
1
解决办法
9767
查看次数

Android安装应用程序中的棒棒糖错误代码-505

我有一个与Android棒棒糖的nexus 9,但我得到错误代码-505试图从Play商店安装一些应用程序.

这些应用程序是:

  • 沥青8
  • 地下城猎人4
  • 六支枪; 和
  • 其他gameloft游戏

其他应用程序的工作安装正常,但这些游戏没有.

你能告诉我这个错误代码是什么意思吗?你能告诉我如何解决它吗?

installation android

6
推荐指数
3
解决办法
3万
查看次数

Android Gradle:在一台设备上安装所有构建类型

在使用GCM,ContentProvider,AccountType时,如何配置项目以便能够在发布版本旁安装调试版本?(不使用口味)

我一直收到错误,例如:INSTALL_FAILED_CONFLICTING_PROVIDERINSTALL_FAILED_DUPLICATE_PERMISSION

android android-gradle-plugin android-productflavors android-build-type android-variants

4
推荐指数
1
解决办法
1449
查看次数

我可以删除此权限吗?(它导致Android 5.0设备中的INSTALL_FAILED_DUPLICATE_PERMISSION)

我的测试人员表示他无法将Play应用程序中的应用安装到他的Nexus 5(Lollipop).他说他得到了这个错误

Unknown error code during application install “-505”
Run Code Online (Sandbox Code Playgroud)

我拿起手机试着通过adb安装应用程序,我收到了这个错误

Failure [INSTALL_FAILED_DUPLICATE_PERMISSION 
        perm=com.example.gcm.permission.C2D_MESSAGE 
        pkg=com.mailchimp.alterego]
Run Code Online (Sandbox Code Playgroud)

经过一番阅读,我从@Commonsware看到了这篇文章

http://commonsware.com/blog/2014/08/04/custom-permission-vulnerability-l-developer-preview.html

很明显,我的应用程序和Mailchimp应用程序(安装在我的测试人员手机上)都有重复的权限,com.example.gcm.permission.C2D_MESSAGE.然后我检查我的git日志,看看我什么时候将该行添加到我的AndroidManifest,发现它是在我实现GCM的时候.那时,我遵循了本教程

https://developer.android.com/google/gcm/client.html

在此输入图像描述

我想,我和Mailchimp开发人员都遵循相同的教程,添加了相同的权限,现在我们的应用程序都有重复的权限.

所以,我从AndroidManifest中删除了该权限,现在我可以在我的测试人员的手机上安装我的应用程序了.我通过从我的PHP脚本发送到包到GCM服务器的测试GCM消息,应用程序仍然得到GCM消息.

那么,是否会因为缺少许可而提出其他问题,无论如何获得该许可的重点是什么?(因为没有它,我的应用程序仍然收到GCM消息)

我担心的是,如果我们的应用程序使用的是需要权限的插件/库.如果有另一个安装的应用程序使用相同的库,我们将无法在Lollipop设备上安装我们的应用程序,不是吗?

- 注意 -

我已经读过这个问题了,很少有人对我所做的事情提出同样的建议,取消许可.但没有人谈论我们做之后会发生什么,或者为什么我们必须添加它.

INSTALL_FAILED_DUPLICATE_PERMISSION ... C2D_MESSAGE

- 编辑1 -

我回到教程,教程是对的,这是我错误的实现

在此输入图像描述

我(和Mailchimp开发人员)应该使用我们的应用程序包+ .permission.C2D_MESSAGE的名称添加权限,而不是仅复制并粘贴com.example.gcm.permission.C2D_MESSAGE

<permission android:name="com.mycompany.myappname.permission.C2D_MESSAGE" 
            android:protectionLevel="signature" />
Run Code Online (Sandbox Code Playgroud)

但是,这给我提出了另一个问题,教程说,如果我们不添加此权限或名称与模式不匹配,应用程序将无法获取消息.但是当我测试时,即使我删除时,我收到了消息这个漏洞......很奇怪.

android google-cloud-messaging android-permissions android-5.0-lollipop

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