布局土地Resources $ NotFoundException:资源ID#0x7f0b007b

时间:2018-06-22 06:58:55

标签: android screen-orientation

我正在尝试执行水平布局,但是不会调用layout-land中的layout。我尝试了几乎所有在线提供的解决方案。

  

我正在获取Resources $ NotFoundException:资源ID#0x7f0b007b

setContentView(R.layout.login_activity);

只有该活动的水平布局时。 (我尝试通过仅在布局区域保留该活动的一个布局)

在清单中

<activity
        android:name=".activities.Login"
        android:configChanges="keyboardHidden|screenSize"   />

我的layout-land文件夹在res文件夹中,所以没有问题。 我清理了项目,重新启动Studio,然后删除“ build”文件夹,但对我没有任何帮助。

下面的方法也不会被调用:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    Log.d(TAG, "onConfigurationChanged()             " + newConfig.orientation);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) 
        {
//myCode
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//myCode
    }
}

Horizo​​ntal仅当我按android设备菜单按钮时所有能够在水平模式下查看的应用程序,并且当我单击我的应用程序时它才变为水平,然后在水平视图和纵向视图中都可以使用。

  

onConfigurationChanged方法被称为该活动。

我不明白为什么我的应用程序会发生这种情况。

应用程序崩溃时我得到的日志

FATAL EXCEPTION: main
                                                                  Process: com.my.pakage, PID: 6922
                                                                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.pakage/com.my.pakage.activities.Login}: android.content.res.Resources$NotFoundException: Resource ID #0x7f0b007b
                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
                                                                      at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
                                                                      at android.os.Handler.dispatchMessage(Handler.java:105)
                                                                      at android.os.Looper.loop(Looper.java:164)
                                                                      at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                                      at java.lang.reflect.Method.invoke(Native Method)
                                                                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                                   Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f0b007b
                                                                      at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:195)
                                                                      at android.content.res.Resources.loadXmlResourceParser(Resources.java:2133)
                                                                      at android.content.res.Resources.getLayout(Resources.java:1142)
                                                                      at android.view.LayoutInflater.inflate(LayoutInflater.java:421)
                                                                      at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                                                                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)
                                                                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                      at com.my.pakage.activities.Login.onCreate(Login.java:96)
                                                                      at android.app.Activity.performCreate(Activity.java:6975)
                                                                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
                                                                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
                                                                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 
                                                                      at android.app.ActivityThread.-wrap11(Unknown Source:0) 
                                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 
                                                                      at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                                      at android.os.Looper.loop(Looper.java:164) 
                                                                      at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                                      at java.lang.reflect.Method.invoke(Native Method) 
                                                                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

1 个答案:

答案 0 :(得分:0)

  

亲自处理配置更改可以做得更多   难以使用替代资源,因为系统没有   自动为您应用它们。应该考虑这种技术   最后的选择,当您必须避免由于配置而重新启动时   更改,不建议在大多数应用中使用。

第一组

  • android:configChanges =“ orientation”

演示

<activity android:name=".activities.Login"
          android:configChanges="orientation|screenSize|keyboardHidden" 
          android:label="@string/app_name">

阅读Handle configuration changes

  

当您声明要处理配置的活动时   更改,您有责任重置您要为其设置的任何元素   提供替代方案。如果您声明要处理的活动   方向改变并且图像应该在   横向和纵向,您必须将每个资源重新分配给每个资源   onConfigurationChanged()中的元素。

仅供参考

当找不到请求的资源时,资源API会引发

Resources$NotFoundException异常。