Nexus 7上的Android应用无法启动(显示黑屏)

时间:2014-05-25 04:32:46

标签: android c++ ant android-ndk nexus-7

我正在使用Gameplay3D编写Android应用。我可以使用NDK编译并使用ANT(调试和发布)生成APK。该应用程序在Galaxy S3和Nexus 4上安装,启动和运行完美,但是当我尝试在Nexus 7上启动它时,它不会显示任何内容。只是一个黑色屏幕,底部有导航条。

我有两个Nexus 7,每个都有不同版本的Android(一个是4.3,另一个是4.4)。

我对Android开发没有太多经验,但这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.secretCompany.secretGame"
        android:versionCode="15"
        android:versionName="1.0.0">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- This is the platform API where the app was introduced. -->
    <uses-sdk android:minSdkVersion="10" />
    <uses-feature android:glEsVersion="0x00020000"/>

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:hasCode="true">

        <!-- Our activity is the built-in NativeActivity framework class.
             This will take care of integrating with our NDK code. -->
        <activity android:name="android.app.NativeActivity"
                android:label="@string/app_name"
                android:configChanges="orientation|keyboardHidden"
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                android:screenOrientation="landscape">
            <!-- Tell NativeActivity the name of or .so -->
            <meta-data android:name="android.app.lib_name"
                    android:value="secretGame" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest> 

我已经更改了游戏的名称和公司,因为它们目前是一个秘密,但除此之外,这正是它在文件中的显示方式。

非常感谢任何帮助:)

其他信息:

应用程序唯一能做的就是渲染精灵并接受输入。没有声音,没有互联网,没有别的。

两个Nexuses(Nexi?:P)都是2012版本,而不是2013版本。

我使用渲染到纹理。这可能是个问题吗?也许使用非2次幂纹理?

我测试过,代码仍在运行,我什么也看不见。

1 个答案:

答案 0 :(得分:0)

AH终于,我从this post开始自己想出来了。问题在于,我的几乎所有纹理都不是2的幂,而那些纹理当时都不在屏幕上。

傻傻的我。

编辑:或者可能不是......现在它不会显示任何内容,甚至不会显示之前的2次幂的纹理... OpenGL FBO必须有一个正方形纹理在2-power-of 2设备上工作?

编辑2:啊,好吧我终于找到了问题。我最初关于没有2次幂纹理的精灵是正确的,但后来我重新启用了渲染到纹理,它停止了工作。原来问题是我正在渲染到另一个FBO,然后提取纹理将其变成精灵并渲染到主FBO ......当然纹理不是2的幂。我刚刚创建了整个屏幕仍然适合的最低PO2尺寸的纹理,然后修改了全屏精灵的UV坐标,以便将额外的纹理部分放在屏幕外。问题解决了!