首先,我知道关于这个话题有很多问题。我在互联网上进行了搜索,但大多数教程都是关于旧版本的 AdMob。此外,所有人对问题都有某种不同的解决方案。它们都不适合我。我非常非常接近将这些测试添加到我的应用程序中。他们只是不出现。我收到以下错误:
02-21 21:05:46.457:W/webcore(14924):第一次布局后无法获取viewWidth
02-21 21:05:46.586:W/Ads(14924):无效的未知请求错误:无法确定请求类型。您的广告单元 ID 正确吗?
02-21 21:05:46.586:D / webviewglue(14924):nativeDestroy视图:0x685300
02-21 21:05:46.586:I/Ads(14924):onFailedToReceiveAd(Google 广告请求无效。)
我还没有 AdMob 发布商 ID,因为这将是我投放市场的第一个 APP(并且我首先必须在市场上有一个 APP,然后才能获得该 APP 的 ID)。我应该使用什么ID?目前我有(在我的 Android 手机上测试):
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice("9B08CXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
//adRequest.addTestDevice("037c7xxxxxxxxxxx"); (Not right, is from console)
AdView adView = (AdView) this.findViewById(R.id.adView);
adView.loadAd(adRequest);
Run Code Online (Sandbox Code Playgroud)
在我的 XML 中,我有(因为它还警告 viewWidth?)。它被封装在一个更大的 LinearLayout 中:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="50dip">
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="@string/admob_pub_id"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我希望问题足够小,但仍然包含足够的信息。
提前致谢!亲切的问候,乔斯。
编辑:我确实更改了清单文件(添加权限、活动 android:name=...、android:configChanges=...)。我将 jar 添加到 lib 文件夹并将其添加到库中。
我在我的 Android 清单中添加了需要陀螺仪和 OpenGL ES2 支持的要求,看来现在市场上淘汰的设备比应有的多得多。
有谁知道为什么ICS上的摩托罗拉Droid4不支持陀螺仪?制造商列出它支持它,并且 ICS 足够高,可以支持陀螺仪,而不是需要通过磁场和加速度计进行插值的 Froyo
陀螺仪 android-market-filtering 到底是如何完成的?
android android-manifest gyroscope android-market-filtering google-play
Play 管理中心显示“支持的设备 0”。
问题
我需要相机功能,如果没有相机,如果它没有出现在该设备的游戏商店中,我也没关系。
我的清单文件的相关部分如下。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="<mypackagename>">
<!-- Without this Google Play Store will not support any device -->
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<!-- For Options menu call support -->
<uses-permission android:name="android.permission.CALL_PHONE"/>
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- To auto-complete the email text field in the …Run Code Online (Sandbox Code Playgroud) 我问的原因与 Google 最近关于需要支持 64 位设备的应用程序的通信https://developer.android.com/distribute/best-practices/develop/64-bit有关。根据文章中提到的建议,我非常有信心我的应用程序支持 64 位设备。当我从 Google Play 安装它时,它的工作原理与预期完全一致,但是当我在 64 位硬件上使用 ADB 命令在本地测试 APK 时(正如 Google 在本节“在 64 位硬件上测试您的应用程序”中建议的那样),我的应用程序存在用户界面问题。我不确定为什么它的行为不一致。
是否有可能在使用 Google Play 时安装了 32 位版本,因此工作正常?我担心我的应用程序在真正安装为 64 位时实际上可能会出现问题,因此我们将不胜感激对上述不一致之处的任何澄清。
我正在测试的设备是运行 Android 7.0 的“Moto X Pure Edition”。它拥有采用ARM架构的Snapdragon 808 CPU。另一方面,我们没有看到任何“/lib”文件夹,正如 Google 文章建议检查的那样。我们的应用程序是混合的,使用 Ionic v3 构建。
我查看了许多其他链接和 stackoverflow 帖子,但没有解决我的问题,我通过 android studio 安装了我的应用程序,并在关闭开发人员模式后删除了它,现在当我尝试从 google play 商店安装它时,它告诉我 \xe2 \x80\x9c您无法安装此应用程序,因为另一个用户已在此设备上安装了不兼容的版本\xe2\x80\x9d,我尝试打开按字母顺序显示应用程序的应用程序列表,但它不在那里,我尝试过从存储访问应用程序列表,但该应用程序也不在那里。我尝试从 android studio 再次安装它(我再次打开开发人员模式),但应用程序无法安装,我收到一条错误,提示没有 MainActivity,但我可以通过 android studio 在其他设备上运行该应用程序。
\n我还能做什么才能从手机中完全删除该应用程序并最终能够从 Google Play 商店下载它?
\nandroid samsung-mobile google-play android-studio samsung-galaxy
我将在 Google Play 商店上发布我的第一个应用程序。目前我的应用程序是完全免费的,但后来我想添加一些应用程序内购买(但用户仍然应该能够免费下载它)。现在我应该如何设置定价 - 免费还是付费?
我正在使用 Google 的计费库在我的应用程序内进行订阅。
~~ 3天后,google play已经退还了我用户的所有订阅,为什么呢?
一些带有活动的代码,用于进行订阅:
private var billingClient: BillingClient? = null
private val purchasesUpdateListener = PurchasesUpdatedListener { billingResult, purchases ->
val isSuccessResult = billingResult.responseCode == BillingClient.BillingResponseCode.OK
val hasPurchases = !purchases.isNullOrEmpty()
if (isSuccessResult && hasPurchases) {
purchases?.forEach(::confirmPurchase)
viewModel.hasSubscription.value = true
}
}
private fun confirmPurchase(purchase: Purchase) {
val consumeParams = ConsumeParams.newBuilder()
.setPurchaseToken(purchase.purchaseToken)
.build()
billingClient?.consumeAsync(consumeParams) { billingResult, _ ->
if (billingResult.responseCode != BillingClient.BillingResponseCode.OK) {
//all done
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
billingClient = BillingClient.newBuilder(this)
.setListener(purchasesUpdateListener)
.enablePendingPurchases() …Run Code Online (Sandbox Code Playgroud) android google-play in-app-subscription play-billing-library
不久前,我开发了一个android应用程序并以捆绑文件的形式发布在google play store中,但由于我的特殊情况删除了源代码。现在,我想更新该应用程序。是否可以使用我的 Google Play 控制台帐户中的捆绑文件取回源代码?提前致谢。
我已经在 android 设备上测试了我的 android 应用程序(debug-apk),它运行良好,但在发布模式下崩溃。
我认为这是配置问题,但我无法识别。请建议。
Caused by: android.database.sqlite.SQLiteException: no such table: Login (code 1): , while compiling: SELECT * FROM Login
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
Run Code Online (Sandbox Code Playgroud) android ×10
google-play ×10
32bit-64bit ×1
adb ×1
admob ×1
api ×1
apk ×1
gyroscope ×1
publishing ×1