簡體   English   中英

當我嘗試在 Mobile 或 Android Studio 中打開我的應用程序時。 它說無法讀取應用程序數據未能啟動應用程序

[英]When I try to open my app in Mobile or Android Studio. It says cannot read app data failed to launch app

我將以前項目中的代碼復制到了這個新項目中,我偶然發現了這個錯誤。 我試圖重建項目。 我不確定是不是。 我會為您提供您想要的任何信息。 我嘗試在 Android Studio 中運行,它確實給了我除此之外的任何東西

06/14 22:23:30: Launching 'app' on Copy_of_Pixel 3a API 24 Backup.
App restart successful without requiring a re-install.
$ adb shell am start -n "com.example.turnovernodes/com.example.turnovernodes.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

AndroidManifest

<?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="com.example.turnovernodes">

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.TurnOverHosting"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="false"
            tools:ignore="IntentFilterExportedReceiver">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-7460030581005035~1600535246" />
    </application>

</manifest>

MainActivity.java

package com.example.turnovernodes;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.gms.ads.AdError;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.FullScreenContentCallback;
import com.google.android.gms.ads.LoadAdError;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.OnUserEarnedRewardListener;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
import com.google.android.gms.ads.rewarded.RewardItem;
import com.google.android.gms.ads.rewarded.RewardedAd;
import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback;

import java.io.IOException;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class MainActivity extends AppCompatActivity {
    public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");

    Button loadad;
    Button showad;
    TextView point;
    TextView status_text;
    EditText discord_id;
    RewardedAd mRewardedAd;
    Integer Ads_Watched = 0;
    Integer Credits_Earned = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loadad = findViewById(R.id.loadadbutton);
        showad = findViewById(R.id.showadbutton);
        point = findViewById(R.id.point);
        status_text = findViewById(R.id.status_text);
        discord_id = findViewById(R.id.discord_id);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
                new android.os.Handler().postDelayed(
                        new Runnable() {
                            public void run() {
                                Log.i("tag", "Initialization complete");
                                status_text.setText("Initialization complete. Make sure you put your discord ID above");
                            }
                        }, 5000);
            }
        });

        loadad.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String str_discord_id = discord_id.getText().toString().replaceAll("\\s+", "");
                if (str_discord_id.equals("") || str_discord_id.length() != 18) {
                    status_text.setText("Please enter a valid discord user ID.\nMake sure it is 18 digits long");
                    return;
                }
                Log.d("TAG", "Loading ad");
                status_text.setText("Loading ad");
                AdRequest adRequest = new AdRequest.Builder().build();

                RewardedAd.load(com.example.turnovernodes.MainActivity.this, "\n" +
                                "ca-app-pub-7460030581005035/5128716716",
                        adRequest, new RewardedAdLoadCallback() {
                            @Override
                            public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                                // Handle the error.
                                Log.d("TAG", loadAdError.getMessage());
                                mRewardedAd = null;
                                status_text.setText("Ad load failed");
                            }

                            @Override
                            public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
                                mRewardedAd = rewardedAd;
                                Log.d("TAG", "Ad was loaded.");
                                status_text.setText("Ad loaded and ready to be watched.\nClick SHOW AD to watch");

                            }
                        });
            }
        });


        showad.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String str_discord_id = discord_id.getText().toString().replaceAll("\\s+", "");
                if (str_discord_id.equals("") || str_discord_id.length() != 18) {
                    status_text.setText("Please enter a valid discord user ID.\nMake sure it is 18 digits long");
                    return;
                }
                status_text.setText("Trying to show ad");
                if (mRewardedAd != null) {
                    Activity activityContext = MainActivity.this;
                    mRewardedAd.show(activityContext, new OnUserEarnedRewardListener() {
                        @Override
                        public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
                            // Handle the reward.
                            Log.d("TAG", "The user earned the reward.");
                            int rewardAmount = rewardItem.getAmount();
                            String rewardType = rewardItem.getType();
                            Ads_Watched++;
                            Credits_Earned += rewardAmount;
                            point.setText("Ads Watched: " + Ads_Watched.toString() + "\nCredits Earned: " + Credits_Earned.toString());

                            try {
                                Executor executor = Executors.newSingleThreadExecutor();
                                executor.execute(new Runnable() {
                                    @Override
                                    public void run() {
                                        OkHttpClient client = new OkHttpClient();
                                        RequestBody body = RequestBody.create("{ \"credits\": \"" + rewardAmount + "\" }", JSON);
                                        Request request = new Request.Builder()
                                                .url("https://dash.turnover.ga/api/users/" + discord_id.getText().toString() + "/increment")
                                                //.url("https://ApiRouter.fanisus.repl.co?credits=20")
                                                .header("Authorization", "Bearer " + "E61kOmVMh85gdww5ey194K83eCAU0ICrWJwYh-P0_H0PuE8R")
                                                .patch(body)
                                                .build();
                                        try (Response response = client.newCall(request).execute()) {
                                            System.out.println("Dataaaaaaaaaaa: " + response.body().string());
                                        } catch (IOException e) {
                                            e.printStackTrace();
                                        }
                                    }
                                });
                                status_text.setText("Ad watched and credits added");
                            } catch (Exception e) {
                                e.printStackTrace();
                                status_text.setText("Error: " + e.toString());
                            }

                            mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() {
                                @Override
                                public void onAdShowedFullScreenContent() {
                                    // Called when ad is shown.
                                    Log.d("TAG", "Ad was shown.");
                                    status_text.setText("Ad was shown");
                                }

                                @Override
                                public void onAdFailedToShowFullScreenContent(AdError adError) {
                                    // Called when ad fails to show.
                                    Log.d("TAG", "Ad failed to show.");
                                    status_text.setText("Ad failed to show");
                                }

                                @Override
                                public void onAdDismissedFullScreenContent() {
                                    // Called when ad is dismissed.
                                    // Set the ad reference to null so you don't show the ad a second time.
                                    Log.d("TAG", "Ad was dismissed.");
                                    mRewardedAd = null;
                                }
                            });
                            // status_text.setText("The user earned " + rewardAmount + " " + rewardType);
                        }
                    });
                } else {
                    Log.d("TAG", "The ad is not loaded yet");
                    status_text.setText("The ad is not loaded yet. Please click LOAD AD button if you haven't clicked it.");
                }
            }
        });
    }
}

ActivityMain.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="TurnOver Nodes"
        android:textSize="40sp"
        app:layout_constraintBottom_toTopOf="@+id/discord_id"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.495"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.653" />

    <TextView
        android:id="@+id/status_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Please put your discord user id"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/showadbutton"
        app:layout_constraintVertical_bias="0.341" />

    <TextView
        android:id="@+id/point"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Ads Watched: 0\nCoins: 0"
        android:textSize="20sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/loadadbutton"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:text="Load Ad"
        app:layout_constraintBottom_toTopOf="@+id/showadbutton"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/point" />

    <Button
        android:id="@+id/showadbutton"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:text="Show Ad"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/point" />

    <EditText
        android:id="@+id/discord_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Put your Discord ID here"
        android:inputType="textPersonName"
        android:minHeight="48dp"
        app:layout_constraintBottom_toTopOf="@+id/point"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.785" />

</androidx.constraintlayout.widget.ConstraintLayout>```

我從 Manifest 中刪除了這一行,但沒有顯示錯誤

tools:ignore="IntentFilterExportedReceiver">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM