मैं LibGDX के अंदर Appodeal के डेमो बैनर विज्ञापनों का परीक्षण करने की कोशिश कर रहा हूं और मुझे यह बैनर मिलता है जो "आपने एक गलत पैकेज नाम प्रदान किया है" त्रुटि प्रदर्शित करता है।

enter image description here

मैंने उस त्रुटि संदेश को गुगल किया है लेकिन कुछ भी नहीं मिला। मैंने एपोडियल परीक्षण ऐप डाउनलोड किया है और उनके परीक्षण विज्ञापन सही ढंग से प्रदर्शित होते हैं। मैं Appodeal और Admob के लिए एक ही परीक्षण आईडी का उपयोग कर रहा हूं जिसका उपयोग उनका परीक्षण ऐप करता है। मैंने उनके सेटअप ट्यूटोरियल को देखा है और उनके टेस्ट ऐप के लिए कोड देखा है, लेकिन मैं यह नहीं समझ सकता कि मैं क्या गलत कर रहा हूं। यह पता लगाने में कोई मदद की बहुत सराहना की जाएगी!

मैंने एक छोटा परीक्षण ऐप बनाया, यहाँ मेरा कोड है।

AndroidLauncher.java

package com.mygdx.adtest;

import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.RelativeLayout;

import com.appodeal.ads.Appodeal;
import com.appodeal.ads.BannerView;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;

public class AndroidLauncher extends AndroidApplication {
    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
        
        // LAYOUT: combines LibGDX View and Ad View
        RelativeLayout relativeLayout = new RelativeLayout(this);
        
        // Ad View
        Appodeal.initialize(this, "fee50c333ff3825fd6ad6d38cff78154de3025546d47a84f", Appodeal.BANNER);
        Appodeal.setTesting(true);
        Appodeal.show(this, Appodeal.BANNER);
        
        BannerView bannerView = new BannerView(this, null);
        Appodeal.setBannerViewId(bannerView.getId());
        
        // LibGDX View
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);     
        View libgdxView = initializeForView(new AppodealTest(), config);
        
        // add to view
        relativeLayout.addView(bannerView);
        relativeLayout.addView(libgdxView);
        
        // set layout
        setContentView(relativeLayout);
    }
}

AppodealTest.java

package com.mygdx.adtest;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.utils.ScreenUtils;

public class AppodealTest extends ApplicationAdapter {
    @Override public void create () { }
    @Override public void render () { ScreenUtils.clear(0.2f, 0.3f, 0.4f, 1); }
    @Override public void dispose () { }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mygdx.adtest" >
    
    <!-- APPODEAL -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:isGame="true"
        android:appCategory="game"
        android:label="@string/app_name"
        android:theme="@style/GdxTheme" >
        
        <activity
            android:name="com.mygdx.adtest.AndroidLauncher"
            android:label="@string/app_name" 
            android:screenOrientation="fullUser"
            android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize|screenLayout">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    
        <!-- ADMOB -->
        <meta-data
                android:name="com.google.android.gms.ads.APPLICATION_ID"
                android:value="ca-app-pub-3940256099942544~3347511713"/>
    </application>
</manifest>

परियोजना: build.gradle

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
        gradlePluginPortal()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.4'
    }
}

allprojects {
    apply plugin: "eclipse"
    version = '1.0'
    ext {
        appName = "AppodealTest"
        gdxVersion = '1.10.0'
        roboVMVersion = '2.3.12'
        box2DLightsVersion = '1.5'
        ashleyVersion = '1.7.3'
        aiVersion = '1.8.2'
        gdxControllersVersion = '2.1.0'
    }
    repositories {
        mavenLocal()
        mavenCentral()
        google()
        gradlePluginPortal()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "https://oss.sonatype.org/content/repositories/releases/" }
    }
}

project(":desktop") {
    apply plugin: "java-library"
    dependencies {
        implementation project(":core")
        api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
        api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
    }
}

project(":android") {
    apply plugin: "com.android.application"
    configurations { natives }
    dependencies {
        implementation project(":core")
        api "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
        natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
    }
}

project(":core") {
    apply plugin: "java-library"
    dependencies {
        api "com.badlogicgames.gdx:gdx:$gdxVersion"
    }
}

एंड्रॉइड: बिल्ड.ग्रेडल

android {
    buildToolsVersion "30.0.2"
    compileSdkVersion 30
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }
    }
    packagingOptions {
        exclude 'META-INF/robovm/ios/robovm.xml'
    }
    defaultConfig {
        applicationId "com.mygdx.adtest"
        minSdkVersion 16
        targetSdkVersion 30
        multiDexEnabled true
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    
    // APPODEAL
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

// called every time gradle gets executed, takes the native dependencies of
// the natives configuration, and extracts them to the proper libs/ folders
// so they get packed with the APK.
task copyAndroidNatives {
    doFirst {
        file("libs/armeabi/").mkdirs()
        file("libs/armeabi-v7a/").mkdirs()
        file("libs/arm64-v8a/").mkdirs()
        file("libs/x86_64/").mkdirs()
        file("libs/x86/").mkdirs()
        configurations.natives.copy().files.each { jar ->
            def outputDir = null
            if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
            if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
            if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
            if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
            if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
            if(outputDir != null) {
                copy {
                    from zipTree(jar)
                    into outputDir
                    include "*.so"
                }
            }
        }
    }
}

tasks.whenTaskAdded { packageTask ->
    if (packageTask.name.contains("package")) {
        packageTask.dependsOn 'copyAndroidNatives'
    }
}

task run(type: Exec) {
    def path
    def localProperties = project.file("../local.properties")
    if (localProperties.exists()) {
        Properties properties = new Properties()
        localProperties.withInputStream { instr ->
            properties.load(instr)
        }
        def sdkDir = properties.getProperty('sdk.dir')
        if (sdkDir) {
            path = sdkDir
        } else {
            path = "$System.env.ANDROID_HOME"
        }
    } else {
        path = "$System.env.ANDROID_HOME"
    }
    def adb = path + "/platform-tools/adb"
    commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.mygdx.adtest/com.mygdx.adtest.AndroidLauncher'
}

eclipse.project.name = appName + "-android"

// APPODEAL
repositories {
    // Add Appodeal repository
    maven { url "https://artifactory.appodeal.com/appodeal" }
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
    
    // APPODEAL
    implementation 'com.appodeal.ads:sdk:2.10.3.+'
}

network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">127.0.0.1</domain>
    </domain-config>
</network-security-config>
0
Tekkerue 24 पद 2021, 00:19
1
मुझे लगता है कि आपने परीक्षण विज्ञापन के लिए एक परीक्षण डेमो प्रोजेक्ट बनाया है। लेकिन आपको विज्ञापन दिखाने के लिए प्रोजेक्ट का एक ही पैकेज नाम रखना चाहिए, क्योंकि वे कॉन्टेक्स से मिलने वाले पैकेज के नाम की जांच करेंगे।
 – 
EAS
24 पद 2021, 08:05
हां! यह किया! मैं ऐसा कभी सोच नहीं सकता था। आपको धन्यवाद! यदि आप इसे उत्तर के रूप में पोस्ट करते हैं तो मैं इसे कल स्वीकार करूंगा (अब बिस्तर पर जा रहा हूं, मैं आज इस पर लंबे समय से हूं)।
 – 
Tekkerue
24 पद 2021, 09:49

1 उत्तर

सबसे बढ़िया उत्तर

मुझे लगता है कि आपने परीक्षण विज्ञापन के लिए एक परीक्षण डेमो प्रोजेक्ट बनाया है। लेकिन आपको विज्ञापन दिखाने के लिए प्रोजेक्ट का पैकेज नाम समान रखना चाहिए, क्योंकि वे संदर्भ से पैकेज नाम प्राप्त करने की जांच करेंगे।

package com.mygdx.adtest;    //You should pay attention to this.

import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.RelativeLayout;

import com.appodeal.ads.Appodeal;
import com.appodeal.ads.BannerView;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;

public class AndroidLauncher extends AndroidApplication {
    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
        
        // LAYOUT: combines LibGDX View and Ad View
        RelativeLayout relativeLayout = new RelativeLayout(this);
        
        // Ad View
        Appodeal.initialize(this, "fee50c333ff3825fd6ad6d38cff78154de3025546d47a84f", Appodeal.BANNER);
        Appodeal.setTesting(true);
        Appodeal.show(this, Appodeal.BANNER);
        
        BannerView bannerView = new BannerView(this, null);
        Appodeal.setBannerViewId(bannerView.getId());
        
        // LibGDX View
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);     
        View libgdxView = initializeForView(new AppodealTest(), config);
        
        // add to view
        relativeLayout.addView(bannerView);
        relativeLayout.addView(libgdxView);
        
        // set layout
        setContentView(relativeLayout);
    }
}
1
EAS 24 पद 2021, 09:57