相关疑难解决方法(0)

测试应用内结算:"发布商无法购买此商品"

我的应用程序似乎已准备好对我的设备上的应用程序内购买程序进行"真实生活"测试.但是,我在Play商店收到"发布商无法购买此商品"错误消息.现在,我该怎么测试呢?我不想丢失手机的配置,只需重新安装一个虚拟帐户进行测试.在"设置" - "许可证测试"下的开发者控制台中,我在"具有测试访问权限的GMail帐户"下添加了我的电子邮件地址,但这并没有改变任何内容......也许我错过了一些简单的方法,但现在它感觉很混乱!

android in-app-purchase in-app-billing

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

Android Studio Update 0.4.0找不到buildConfig()

将Android Studio升级到版本0.4.0后,我遇到了一个新错误:

我通过gradle-wrapper.properties升级到gradle 1.9

distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip
Run Code Online (Sandbox Code Playgroud)

并在build.gradle中升级了gradle版本

dependencies {
    classpath 'com.android.tools.build:gradle:0.7.+'
}
Run Code Online (Sandbox Code Playgroud)

现在我的项目正在重建.

我为不同的productFlavors定义了一些String常量:

productFlavors {
    local {
        buildConfig "public static final String MY_KEY = \"\";"
    }

    alpha {
        buildConfig "public static final String MY_KEY = \"XXXXX-XXXXX-XXX\";"
    }

    beta {
        buildConfig "public static final String MY_KEY = \"YYYYY-YYYYY-YYY\";"
    }
}
Run Code Online (Sandbox Code Playgroud)

这是新的错误

找不到参数的方法buildConfig() [public static final String MY_KEY ="";] on GroupableProductFlavorDsl_Decorated {name = local,minSdkVersion = -1,targetSdkVersion = -1,renderscriptTargetApi = -1,renderscriptSupportMode = null,renderscriptNdkMode = null, versionCode = -1,versionName = null,packageName = null,testPackageName = …

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

28
推荐指数
1
解决办法
8526
查看次数

build.gradle中的新applicationId如何工作?

谷歌发布了Android Gradle插件的0.11版本.

发行说明包含以下内容:

0.11中用户可见的更改之一是我们已经弃用了packageName和packageNameSuffix设置,并将它们重命名为applicationId和applicationIdSuffix.这样做的目的是清楚地表明这个应用程序id与清单中的包声明分离,特别是R类和BuildConfig类,以及应用程序中的所有实现类,可以自由地重命名和重构; 你只需要保持applicationId相同.如果打开build.gradle文件,lint会突出显示这些已弃用的调用并提供快速修正来更新它们:

这到底是什么意思.如何将构建脚本中的packagename与清单中的packagename分离?

android gradle android-gradle-plugin

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

Android Content Provider和Gradle productFlavours

我有app应该有两种口味:免费和付费.两个版本分别完美运行.但是当我想立刻安装其中的两个时,我收到错误:[INSTALL_FAILED_CONFLICTING_PROVIDER].我试图改变android:authorities和buildConfigField值完全不同但它不会改变任何东西 - 应用程序将无法安装.我还删除了主Android Manifest中的提供者声明 - 没有.请帮我.

我的文件夹结构:

src
|- free
|   |- AndroidManifest.xml
|- main
|   |- all files and res catalogues (java, res, values etc.)
|   |- AndroidManifest.xml
|- premium
    |- AndroidManifest.cml
Run Code Online (Sandbox Code Playgroud)

我的gradle文件:

apply plugin: 'com.android.application'


android {

compileSdkVersion 19
buildToolsVersion '20.0.0'

final PROVIDER_FREE = "com.example.free.contentprovider"
final PROVIDER_PRO = "com.example.pro.contentprovider"

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 20
}
buildTypes {
    release {
        minifyEnabled false // new version
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
productFlavors {
    free {
        applicationId "com.example.free"
        versionCode 141201004 …
Run Code Online (Sandbox Code Playgroud)

java android gradle android-contentprovider android-productflavors

7
推荐指数
0
解决办法
1341
查看次数

Android Flavors,ContentProviders,SyncAdapters和AccountManager

我为我的Android应用程序定义了一些flavor和buildTypes

productFlavors {
    X {
        applicationId = "com.x.xxxx"
    }
    Y {
        applicationId = "com.y.yyyy"
    }
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard_rules.txt'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
    }

    debug {
        applicationIdSuffix ".debug"
    }
}
Run Code Online (Sandbox Code Playgroud)

这样做可以创建不同的flavor/buildType组合.

现在为了确保ContentProviders工作而我没有收到Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]错误,我已将代码中的android:authorities="${applicationId}"AUTHORITY引用更改为BuildConfig.APPLICATION_ID.

这使得ContentProvider工作正常,即当我在同一部手机上安装两种不同类型时,它不会引发错误.它让我安装它们.

下一步是错误发生的地方.我使用SyncAdapterAccountManager控制一些事情.我已修改ACCOUNT_TYPE使用了APPLICATION_ID.因为不能够使用gradle这个问题的${applicationId}非清单XML资源文件,我已经创造了每味不同的目录结构和复制syncadapter.xml,并authenticator.xml有相应的authorityaccount type字符串.

我也尝试过这个博客中描述的技术 - http://blog.jensdriller.com/android-gradle-workaround-for-missing-placeholder-support-in-resource-files/

最受欢迎的答案是在Gradle中使用构建类型来运行在一台设备上使用ContentProvider的相同应用程序但事情似乎不起作用.

有人能够最近上班吗?

xml android gradle android-syncadapter android-productflavors

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

同一设备上的应用程序的两种风格

我使用 Google Play Developer Console 创建了两个单独的应用程序:

  • 带有 ID 的“MyApp” com.myname.app(用于prod风味)
  • 带有 ID 的“MyApp Stage” com.myname.appStage(用于stage风味)

我在 gradle 中使用com.github.triplet.play任务将这些风格部署到相应的 beta 频道。

当我尝试在同一台设备上安装这两种口味时,Google Play 给了我error: -505. 如果我卸载第一个安装的版本,那么我可以成功安装第二个。

正如我在本教程中看到的那样,它应该足够了。

任何想法有什么问题?

这是我的 gradle 脚本片段:

def getGoogleApiJsonFile() {
    (...)
}
android {
    (...)

    defaultConfig {
        applicationId "com.myname"
        (...)
    }
    buildTypes {
        release {
            (...)
            signingConfig signingConfigs.release
        }
    }
    productFlavors {
        prod {
            applicationIdSuffix '.app'
        }
        stage {
            applicationIdSuffix '.appStage'
        }
        dev …
Run Code Online (Sandbox Code Playgroud)

android gradle apk google-play

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

如何保持两个版本的应用程序安装?

我有两个同一个主人的分支

version1
version2
Run Code Online (Sandbox Code Playgroud)

我希望能够同时在手机上安装同一个应用程序的两个版本,而不会相互覆盖.

可能吗?

谢谢

android

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

如何开发同一应用程序的生产和测试版本以安装在同一设备上

我正在开发一个 Android 应用程序,现在应该在为生产应用程序提供服务的同一环境中测试新功能。

我尝试创建一个新分支并将其重命名为 .testing 在清单和 gradle 文件中,但我对提供者有问题,特别说明:

I/dalvikvm: Could not find method android.app.Fragment.setSharedElementEnterTransition, referenced from method com.corp.app.AccountFrag.access$super
Run Code Online (Sandbox Code Playgroud)

所以我不认为这是方法。我希望应用程序安装在它的两个变体中(它们不一定需要共享数据)并且用户打开一个或另一个取决于是否需要在生产环境中测试新功能或更可靠、稳定的版本需要运行。

有没有人处理过这个问题?我怀疑我需要研究口味,但我不知道。

提前感谢您的洞察力。

android versions android-studio

3
推荐指数
1
解决办法
1324
查看次数