我正在使用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次幂纹理?
我测试过,代码仍在运行,我什么也看不见。
答案 0 :(得分:0)
AH终于,我从this post开始自己想出来了。问题在于,我的几乎所有纹理都不是2的幂,而那些纹理当时都不在屏幕上。
傻傻的我。
编辑:或者可能不是......现在它不会显示任何内容,甚至不会显示之前的2次幂的纹理... OpenGL FBO必须有一个正方形纹理在2-power-of 2设备上工作?
编辑2:啊,好吧我终于找到了问题。我最初关于没有2次幂纹理的精灵是正确的,但后来我重新启用了渲染到纹理,它停止了工作。原来问题是我正在渲染到另一个FBO,然后提取纹理将其变成精灵并渲染到主FBO ......当然纹理不是2的幂。我刚刚创建了整个屏幕仍然适合的最低PO2尺寸的纹理,然后修改了全屏精灵的UV坐标,以便将额外的纹理部分放在屏幕外。问题解决了!