Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 广告不会以发布模式显示_Android_Flutter_Admob_Ads_Firebase Admob - Fatal编程技术网

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时,就会显示真实的广告,以及在哪里添加帐户详细信息