2014-05-25 61 views
0

我正在使用Gameplay3D編寫Android應用程序。我可以很好地使用NDK編譯並使用ANT生成APK(調試和發佈)。該應用程序在Galaxy S3和Nexus 4上安裝,啓動和運行完美,但是當我試圖在Nexus 7上啓動它時,它不會顯示任何內容。只是一個黑色的屏幕,導航欄在底部。Nexus 7上的Android應用程序無法啓動(顯示黑屏)

我有兩個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> 

,因爲他們目前正在祕密我已經改變了遊戲的姓名和公司,但除此之外,這是它究竟是如何出現在文件中的。

任何幫助,將不勝感激:)

附加信息:

應用程序所做的唯一事情就是渲染精靈和接受輸入。沒有聲音,沒有互聯網,沒有別的。

這兩個Nexus(Nexi?:P)都是2012版本,而不是2013年的新版本。

我使用渲染到紋理。這可能是一個問題嗎?也許是非2次冪的紋理?

我測試過,代碼仍在運行,我什麼都看不到。

回答

0

AH最後,我自己從this post弄明白了。問題在於,我的幾乎所有紋理都不是2的冪次,當時的屏幕也沒有。

傻我。

編輯:或者,也許不是......現在它不會顯示任何東西,甚至不會顯示任何前2個動力的紋理...... OpenGL FBO必須具有正方形紋理才能工作2個設備的功率?

編輯2:嗯,好的,我終於找到了問題。我最初正確地說明了沒有2次冪紋理的精靈,但後來我重新啓用了渲染到紋理,並停止工作。原來問題是我正在渲染一個不同的FBO,然後提取紋理將它變成一個精靈並渲染成主FBO ......當然紋理不是2的冪。我只是在整個屏幕仍然適合的最低PO2大小下創建了紋理,然後修改了全屏精靈的UV座標,以便將額外的紋理部分放在屏幕外。問題解決了!

+0

ES 2.0基本上支持NPOT(非2次冪)紋理,但主要限制包裝模式和mipmapping。如果支持'OES_texture_npot'擴展,則解除這些限制。這可能解釋了爲什麼你的代碼在某些設備上工作,而不是其他人。失敗的設備最有可能不支持該擴展。 –

+0

@ReetoKoradi啊,我明白了,謝謝。那麼,這不重要,因爲我製作了一個系統,將它們加載爲POT的下一個最大尺寸,然後使用UV座標將它們呈現爲正確的尺寸:) – Clonkex

+0

我接受我自己的答案,但我必須等待在我能做到這一點前2天;) – Clonkex

相關問題