My Application is not Working in a Physical Device

-3

My application does not work when started in a physical device. It's opened with a black screen and closed suddenly.

I am new to Android Studio. I am creating a Chat Application. I am facing some Problems. Please, anyone help me to solve my problem.

My Logcat Errors

* **E/SubscriptionManagerWrapper: java.lang.NoSuchMethodException: android.telephony.SubscriptionManager.getActiveDataSubscriptionId[]
* **E/lsc_nvram: [do_mkdir] fail to mkdir [/sdcard/shading_otp]: 13[Permission denied] (do_mkdir){#65:vendor/mediatek/proprietary /hardware/mtkcam/aaa/source/isp_40/lsc_mgr/LscUtil.h}
* **E/m.android.phon: Invalid ID 0x00000000
* **E/CheckPermission: Permission Denial: can't access location pid=4760, uid=10230, des=com.android.internal.telephony.ITelephony code=69
* **E/CheckPermission: _bluetooth code = 15
* **E/FirebaseInstanceId: Failed to get FIS auth token
  java.util.concurrent.ExecutionException: qju: Firebase Installations Service is unavailable. Please try again later.
      at oui.p(PG:3)
      at oui.k(PG:6)
      at qjh.a(PG:7)
      at qiw.a(Unknown Source:11)
      at low.run(PG:1)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
      at lgj.run(PG:5)
      at java.lang.Thread.run(Thread.java:919)
  Caused by: qju: Firebase Installations Service is unavailable. Please try again later.
      at qkh.a(PG:23)
      at qjr.run(Unknown Source:15)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
      at java.lang.Thread.run(Thread.java:919)

* **E/FirebaseInstanceId: Topic sync or token retrieval failed on hard
    failure exceptions: FIS_AUTH_ERROR. Won't retry the operation

I add these lines of Java source code in my MainActivity to solve(Error:Fail to mkdir) this error, but it won't work

File folder = new File(Environment.getExternalStorageDirectory() +  "/studio");
boolean success = true;
if (!folder.exists()) {
    success = folder.mkdir();
}
if (success) {
    Log.d("proto", "Path Succefully Created");
} else {
    Log.d("proto", "Path Not Created");
}

AndroidManifest File

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.myapplication">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_
       STORAGE"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>

    <application
        android:allowBackup="false"
        android:fullBackupContent="false"
        android:icon="@mipmap/ic_launcher"
        android:label="My Application"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication">
    <activity
        android:name=".Navi_drawer"
        android:label="@string/title_activity_navi_drawer"
        android:theme="@style/Theme.MyApplication.NoActionBar"/>
    <activity android:name=".SendOTP_activity"/>
    <activity android:name=".MainActivity" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    <meta-data
            android:name="preloaded_fonts"
            android:resource="@array/preloaded_fonts" />
    </application>

</manifest>

MainActivity.java

package com.example.myapplication;

import android.Manifest;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.ListView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView;
import 
com.google.android.material.floatingactionbutton.FloatingActionButton;

public class MainActivity extends AppCompatActivity {

private FloatingActionButton fab1, fab2, fab3;

private RecyclerView mchatList;
private RecyclerView.Adapter mchatListAdapter;
private RecyclerView.LayoutManager mchatListLayoutMananger;

private MenuItem menuItem;

private Animation fab_open, fab_close, rotate_open_anim, 
rotate_close_anim, from_bottom_anim, to_bottom_anim;

private Boolean isOpen;
private String[] mNavigationDrawerItemTitles;
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
Toolbar toolbar;
private CharSequence mDrawerTitle;
private CharSequence mTitle;
private ActionBarDrawerToggle mDrawerToggle;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
    mTitle = mDrawerTitle = getTitle();
    mNavigationDrawerItemTitles = 
    getResources().
    getStringArray(R.array.navigation_drawer_items_array);

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.nav_view);

    setupToolbar();

    DataModel[] drawerItem = new DataModel[3];

    drawerItem[0] = new DataModel(R.drawable.ic_baseline_settings_24, 
    "Settings");
    drawerItem[1] = new DataModel(R.drawable.ic_baseline_logout_24, 
    "Logout");
    drawerItem[2] = new DataModel(R.drawable.ic_baseline_info_24, 
    "About");

    getSupportActionBar().setDisplayHomeAsUpEnabled(false);
    getSupportActionBar().setHomeButtonEnabled(true);

    DrawerItemCustomAdapter adapter = new DrawerItemCustomAdapter(this,           
    R.layout.nav_header_main, drawerItem);
    mDrawerList.setAdapter(adapter);
    mDrawerList.setOnItemClickListener((AdapterView.OnItemClickListener) 
    new DrawerItemClickListener());
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerLayout.setDrawerListener(mDrawerToggle);
    setupDrawerToggle();

    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    toolbar.setNavigationIcon(R.drawable.ic_baseline_dashboard_24);


    fab1 = findViewById(R.id.fab1);
    fab2 = findViewById(R.id.fab2);
    fab3 = findViewById(R.id.fab3);

    isOpen = false;

    fab_open = AnimationUtils.loadAnimation(MainActivity.this, 
    R.anim.fab_open);
    fab_close = AnimationUtils.loadAnimation(MainActivity.this, 
    R.anim.fab_close);

    rotate_open_anim = AnimationUtils.loadAnimation(MainActivity.this, 
    R.anim.rotate_open_anim);
    rotate_close_anim = AnimationUtils.loadAnimation(MainActivity.this, 
    R.anim.rotate_close_anim);
    from_bottom_anim = AnimationUtils.loadAnimation(MainActivity.this, 
    R.anim.from_bottom_anim);
    to_bottom_anim = AnimationUtils.loadAnimation(MainActivity.this,  
    R.anim.to_bottom_anim);

    fab1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    if (isOpen) {

        fab1.setAnimation(rotate_open_anim);

        fab2.setVisibility(View.INVISIBLE);
        fab3.setVisibility(View.INVISIBLE);

         isOpen = false;
    } else {
         fab1.setAnimation(rotate_close_anim);

         fab2.setVisibility(View.VISIBLE);
         fab3.setVisibility(View.VISIBLE);

         isOpen = true;
    }

    }
    });

    fab3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
          startActivity(new Intent(getApplicationContext(), 
          finduser.class));
    }
    });
    }

    private class DrawerItemClickListener implements 
          ListView.OnItemClickListener {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int 
         position, long id) {
         selectItem(position);
    }
    } 

    private void selectItem(int position) {

         Fragment fragment = null;

    switch (position) {
        case 0:
            fragment = new SettingsFragment();
            break;
        case 1:
            fragment = new LogoutFragment();
            break;
        case 2:
            fragment = new AboutFragment();
            break;
      default:
            break;
    }
    if (fragment != null) {

        FragmentManager FragmentManager = getSupportFragmentManager();
        FragmentManager.beginTransaction().
        replace(R.id.mobile_navigation,fragment);

        mDrawerList.setItemChecked(position, true);
        mDrawerList.setSelection(position);
        setTitle(mNavigationDrawerItemTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);

    } else {
        Log.e("MainActivity", "Error in creating fragment");
    }
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item){ 
           if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void setTitle(CharSequence title) {
           mTitle = title;
           getSupportActionBar().setTitle(mTitle);
    }

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
          super.onPostCreate(savedInstanceState);
          mDrawerToggle.syncState();
    }

    void setupToolbar(){
          setSupportActionBar(toolbar);
         getSupportActionBar().setDisplayShowHomeEnabled(true);
    }
    void setupDrawerToggle(){
          mDrawerToggle = new 
          androidx.appcompat.app.ActionBarDrawerToggle
          (this,mDrawerLayout,toolbar,
          R.string.app_name, R.string.app_name);
          mDrawerToggle.syncState();
    }
    @SuppressLint("WrongConstant")
    @Override
       public void onBackPressed() {
          if (mDrawerLayout.isDrawerOpen(Gravity.START | Gravity.LEFT)) {

        mDrawerLayout.closeDrawers();
        return;
    }
    super.onBackPressed();
}

    private void getPermission () {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            requestPermissions(new String[]{Manifest.permission.WRITE_CONTACTS, Manifest.permission.READ_CONTACTS}, 1);
        }
    }
}

Navi_drawer.java

package com.example.myapplication;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.google.android.material.navigation.NavigationView;
import static com.example.myapplication.R.id.navigation_header_container;

public class Navi_drawer extends AppCompatActivity {
    private AppBarConfiguration mAppBarConfiguration;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navi_drawer);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        NavigationView navigationView = findViewById(R.id.nav_view);
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        mAppBarConfiguration = new AppBarConfiguration.Builder(
            R.id.settings, R.id.logout, R.id.about)
            .setDrawerLayout(drawer)
            .build();
        NavController navController = Navigation.findNavController(this, 
navigation_header_container);
        NavigationUI.setupActionBarWithNavController(this, navController, 
mAppBarConfiguration);
        NavigationUI.setupWithNavController(navigationView, navController);
    }

    @Override
    public boolean onSupportNavigateUp() {
        NavController navController = Navigation.findNavController(this, navigation_header_container);
        return NavigationUI.navigateUp(navController, mAppBarConfiguration) || super.onSupportNavigateUp();
    }
}
android
android-studio
asked on Stack Overflow May 1, 2021 by Vikram • edited May 15, 2021 by greybeard

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0