Android 广告不会以发布模式显示
我想尝试一下这里提到的解决方案,但我不知道怎么做Android 广告不会以发布模式显示,android,flutter,admob,ads,firebase-admob,Android,Flutter,Admob,Ads,Firebase Admob,我想尝试一下这里提到的解决方案,但我不知道怎么做 当应用程序登录调试时,它会显示广告,但不是在发布模式下在您的android/app目录中创建一个名为proguard-rules.pro的文件 将这行代码添加到其中: -keep class io.flutter.app.** { *; } -keep class io.flutter.plugin.** { *; } -keep class io.flutter.util.** { *; } -keep class io.flutter
当应用程序登录调试时,它会显示广告,但不是在发布模式下在您的android/app目录中创建一个名为proguard-rules.pro的文件 将这行代码添加到其中:
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class com.google.firebase.** { *; }
-keep class com.shatsy.** { *; }
最重要的是:-keep class com.google.firebase.*{*}
和-keep class com.shatsy.*{*}
现在,在应用程序级build.gradle文件中,将以下内容添加到buildType中:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
因此,您的buildType文件夹如下所示:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
然后运行颤振构建apk--buildTypeName
例如:
flutter build apk --release
一个更快的解决方案是将minifyEnabled false
添加到应用程序级别build.gradle中的发行版buildType中
说明:Proguard可能正在阻止您的应用程序使用firebase_广告库。这可能就是为什么你的应用程序在调试模式下运行,而不是在构建apk之后
试试看,看看它是否有效。在发布版本上显示广告需要几个小时。因此,如果它在调试apk上工作,那么您不需要添加任何代码,只需在AdMob上更新您的帐户详细信息,等待帐户确认,几小时后您就会看到发布的广告。我也遇到了同样的问题,这是我的错误,我没有添加internet权限。 如果您的应用程序代码需要访问INTERNET,请添加android.permission.INTERNET权限。标准模板不包括此标签,但允许在开发过程中访问互联网,以实现颤振工具和正在运行的应用程序之间的通信 步骤1:转到android\app\src\main\AndroidManifest.xml 第2步:将这一行复制到下面:
步骤3:将其放入AndroidManifest.xml中:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.java2blog.helloworldapp">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HelloWorldActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
第4步:重建.apk并在手机上试用。它应该可以正常工作。您使用的广告包是什么?firebase_admob,admob_Fleet,还是两者都有?Interstal广告的firebase_admob和Banner广告的admob_Fleet我编辑了我的答案。添加(-keep class com.shatsy.*{*})我们应该使用firebase_admob和admob_flight吗?或者我们可以用admob_flutter吗?为什么我们要使用firebase_admob?我是说在什么情况下@wilson wilson我应该让它保持在调试模式,因为您已经离开了它取决于您当前使用的是什么。如果您没有使用调试,请删除将minifyEnabled false添加到应用程序级别build.gradle的尝试。你添加了-keep class com.shatsy.*{*;}吗?我试着让它在配置文件模式下运行,广告也在那个apk中显示,但不是在发布apk中,请帮助。我添加了这一行“-keep class com.shatsy.*{*;}”,但广告仍然没有在发布模式下显示。Ads在调试模式下工作正常。你能解释一下这条线的目的吗?它已经在创建广告单元后2天多了。当我在上面的回复中写的调试模式下签署apk时,就会显示真实的广告,以及在哪里添加帐户详细信息