MainActivity中的setContentView,位于" Android库项目"

时间:2016-10-12 09:47:47

标签: java android android-activity android-library

我有:

  • 一个没有任何活动的应用程序和一个AndroidManifest.xml
  • 一个" Android图书馆计划"使用Activity(MainActivity.java)和Layout main.xml(res / layout)

在我的AndroidManifest.xml中,我注册了MainActivity Class,它位于" Android Library Project" :

        <activity android:name=".MainActivity"  android:configChanges="orientation|keyboardHidden|screenSize" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

我可以启动App,我可以调试MainActivity的onCreate。

现在我的问题。 当我尝试用...设置内容时。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        int resourceId = getResources().getIdentifier("main","layout", getPackageName());
        setContentView(ResourceId);

...我收到以下错误:

java.lang.NullPointerException
at android.view.ViewGroup.addViewInner(ViewGroup.java:3671)
at android.view.ViewGroup.addView(ViewGroup.java:3543)
at android.view.ViewGroup.addView(ViewGroup.java:3519)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:335)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:325)
at android.app.Activity.setContentView(Activity.java:1944)

变量&#34; resourceId&#34;它有一个很有希望的价值:2130903046,但似乎没有引用有效的资源?

其他信息: 我可以设置一个LinearLayout,它在同一个main.xml中定义而没有问题:

tbl = (LinearLayout) findViewById(getResourceId("main","id"));

没有错误。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

感谢所有助手,抱歉浪费你的时间。我发现了问题。

main.xml必须位于主应用程序中。这是必须在应用程序中的唯一资源。其余的(所有资源)都可以在图书馆计划中。