Мое приложение отлично работает на эмуляторе, но вылетает на устройстве?

Уровень моего устройства Api - 18

Приложение создается без ошибок, и оно нормально работает на эмуляторе, но когда я собираю apk или если я запускаю приложение непосредственно на устройстве, используя режим отладки usb, приложение устанавливается, и когда я его открываю, оно показывает "Приложение, к сожалению, остановился "даже в синих стеках, я сталкиваюсь с той же проблемой. Пожалуйста, помогите мне с этим

Файл манифеста

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.haptechinnovations.caffeine.caffeinecoders">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-sdk android:minSdkVersion="17"
              android:targetSdkVersion="26"
              android:maxSdkVersion="27"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|screenSize"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

Файл Build Gradle (модуль: приложение)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.haptechinnovations.caffeine.caffeinecoders"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

Трассировки стека

в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) в dalvik.system.NativeStart.main(собственный метод) Причина: android.view.InflateException: строка двоичного файла XML № 0: ошибка надувания класса android.support.design.widget.NavigationView на android.view.LayoutInflater.createView(LayoutInflater.java:620) на android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) на android.view.LayoutInflater.Infter.r. Java:755) на android.view.LayoutInflater.inflate(LayoutInflater.java:492) на android.view.LayoutInflater.inflate(LayoutInflater.java:397) на android.view.LayoutInflater.inflate(LayoutInflater.java:353) на android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) в android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) в com.haco MainActivity.java:53) на android.app.Activity.performCreate(Activity.java:5264) на android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) в android.app.ActivityThread.access$800 ActivityThread.java:151) в android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) в android.os.Handler.dispatchMessage(Handler.java:110) в android.os.Looper.loop(Looper.java:193) в android.app.ActivityThread.main(ActivityThread.java:5292) в java.lang.reflect.Method.invokeNative(собственный метод) в java.lang.reflect.Method.invoke(Method.java:515) в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) в dalvik.system.NativeStart.main(собственный метод) Вызывается: java.lang.reflect.InvocationTargetException в java.lang.reflect.Constructor.constructNative(собственный метод) в java.lang.reflect.Constructor.newInstance(Constructor.java:423) в android.view.LayoutInflater.createView(LayoutInflater.java:594) в android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) в android.view.LayoutInflater.rInflate(LayoutInflater.java:5) view.LayoutInflater.inflate (LayoutInflater.java:492) в android.view.LayoutInflater.inflate(LayoutInflater.java:397) в android.view.LayoutInflater.inflate(LayoutInflater.java:353) в android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) в android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) в com.haptechinnovations.caffeine.CajainAacAcoders android.app.Activity.performCreate(Activity.java:5264) в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1088) в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) в android.app.ActivityThread.access$800(ActivityThread.java:151) на android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) на android.os.Handler.dispatchMessage(Handler.java:110) на android.os.Looper. цикл (Looper.java:193) в android.app.ActivityThread.main(ActivityThread.java:5292) в java.lang.reflect.Method.invokeNative(собственный метод) в java.lang.reflect.Method.invoke (метод. Java: 515) в com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824) в com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) в dalvik.system.NativeStart.main(собственный метод) Вызывается: android.content.res.Resources$NotFoundException: идентификатор ресурса #0x7f07007d в android.content.res.Resources.getValue(Resources.java:1133) в android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:330) в android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195) в android.support.v7.widget.Dragompat wable(AppCompatDrawableManager.java:188) на android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100) на android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImp1). в android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.prepareMenuItems(NavigationMenuPresenter.java:519) в android.support.design.internal.NavigationMenuPresenter $ NavigationMenu.apj.injup.su.NavigationMenuPresenter.updateMenuView(NavigationMenuPresenter.java:117) в android.support.design.widget.NavigationView.inflateMenu(NavigationView.java:250) в android.support.design.widget.NavigationView.: Навигация)..support.design.widget.NavigationView. (NavigationView.java:98)

Main Activity.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" >

    </android.support.design.widget.NavigationView>

</android.support.v4.widget.DrawerLayout>

Основная деятельность

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

private WebView mywebView;
String url = "https://www.youtube.com/caffeinecoders";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mywebView=(WebView) findViewById(R.id.webview);
    WebSettings webSettings=mywebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mywebView.loadUrl("https://caffeincoder.wordpress.com/");
    mywebView.setWebViewClient(new WebViewClient());



    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}


@Override
public void onBackPressed() {

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        if (mywebView.canGoBack()) {
            mywebView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_open) {
            boolean isAppExists;
            isAppExists = isInstalled ("com.google.android.youtube");
            if(isAppExists==true) {
                Intent i = new Intent("android.intent.action.VIEW", Uri.parse(url));
                startActivity(i);
            }
            else {
                Toast.makeText(this, "YouTube App Not Installed", Toast.LENGTH_SHORT).show();
            }
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

private boolean isInstalled(String uri) {
    PackageManager pm = getPackageManager();
    boolean isIn;
    try{
        pm.getPackageInfo(uri,PackageManager.GET_ACTIVITIES);
        isIn=true;
    }catch(PackageManager.NameNotFoundException e){
        isIn=false;
    }
    return isIn;
}


@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    if (id == R.id.nav_youtube) {
        Intent intent=new Intent(MainActivity.this,youtube.class);
        startActivity(intent);


        // Handle the camera action
    } else if (id == R.id.nav_facebook) {
        Intent intent=new Intent(MainActivity.this,facebook.class);
        startActivity(intent);

    } else if (id == R.id.nav_about) {

    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}
}

2 ответа

Может быть проблема пользовательского интерфейса. В качестве примера вы разработали приложение для мобильных устройств и планшетов. Если вы пропустили некоторые коды в мобильном интерфейсе (файл XML), он не будет работать на мобильном телефоне. Но это будет хорошо работать в планшете. Пожалуйста, пройдите.

android.content.res.Resources$NotFoundException: идентификатор ресурса #0x7f07007d

Это твоя проблема. Откройте файл R, чтобы увидеть, какой ресурс создает проблему.

В другой раз возникает проблема, если вы пытаетесь вызвать набор текста при разборе int, который заставляет android искать ресурс, который вместо этого сопоставляется с целочисленным значением.

Размещение кода активности, в которой происходит сбой, может помочь

Другие вопросы по тегам