2

尝试使用字符串限定符在清单文件中设置方向

android:screenOrientation="@string/orientation"

在 4.0 华硕平板电脑上工作,但在 2.1 野火和 4.1 Galaxy S 上都失败了。问题实际上是链接到资源,如果在其中输入肖像就可以了。

我尝试更改平板电脑中使用的限定符以在手机上进行测试。这意味着所有设备都使用完全相同的代码、资源和布局。所以它不能是拼写错误或构建问题。但它在手机而不是平板电脑上仍然失败。这似乎是android中的另一个错误。

给出以下错误,logcat 中没有任何内容

Installation error: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Please check logcat output for more details.
Launch canceled!

清单部分

<activity
    android:name=".MainActivity"
        android:screenOrientation="@string/orientation"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

我知道我可以以编程方式做到这一点。但是野火还有另一个问题,不是立即重新启动。相反,它等待视图设置等。这不会发生在其他设备中。

谷歌搜索并找到其他一些使用这些方法的人,但他们似乎没有发现任何问题。 http://capdroid.wordpress.com/2012/07/21/different-screen-orientation-on-different-screen-size

谢谢

4

3 回答 3

5

我有同样的问题,我已经使用整数值而不是字符串值解决了它,并在“onCreate”方法中设置方向:

例子:

值/字符串.xml

<resources>

    <integer name="orientation">1</integer>
...

值-sw600dp/strings.xml

<resources>
     <integer name="orientation">0</integer>
</resources>

然后,在您的 onCreate 中:

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        this.setRequestedOrientation(getResources().getInteger(R.integer.orientation));

每个方向都有一个整数值,有关更多详细信息,请参阅此页面:http: //developer.android.com/reference/android/R.attr.html#screenOrientation

于 2012-11-12T14:50:29.083 回答
3

尝试使用字符串限定符在清单文件中设置方向

虽然当您在编辑器中键入它时它是一个字符串,但 AFAIK 它实际上是作为整数存储在系统中的,因此从字符串资源进行的转换不太可能是可靠的。坦率地说,我很惊讶它可以在一台平板电脑上运行——设备制造商可能已经增加了对此的支持来处理他们自己的应用程序之一。

虽然您可以在清单中使用字符串资源,但它们必须是以字符串形式存储的东西(例如,android:label)。

可能可以使用整数资源,查找用于这些常量的值(可能与它们的 Java 等价物相同)。

这似乎是android中的另一个错误。

对我来说,这似乎是开发人员超越记录行为界限的另一个地方,然后想知道为什么未记录的行为不起作用。

于 2012-07-28T19:57:53.197 回答
2

阅读官方开发人员文档以识别由strings指示的符号形式,将其放入字符串资源将产生解析错误,如 OP 的问题所示。

不,我不会草率下结论将其归类为“错误”,对于每个人和他们自己,一些制造商可以自由地实施自己的机制来处理它,而其他制造商则坚持谷歌的源代码方式。

于 2012-07-28T20:05:59.313 回答