发现TextureView的onSurfaceTextureAvailable无法被调用,getSurfaceTexture返回的也是null。在AndroidManifest.xml里的activity下也加了
android:hardwareAccelerated="true"
琢磨了半天,才意识到是项目迁移时指定的sdk版本问题导致的。
在build.gradle中没有指定类似于下面的:
defaultConfig { applicationId '你的应用包名' minSdkVersion SDK版本号 targetSdkVersion SDK版本号 }
却在AndroidManifest.xml中指定了
<uses-sdk
android:minSdkVersion="SDK版本号"
android:targetSdkVersion="SDK版本号" />
这样编译的apk被认为是使用的版本号很低,就会出现一系列问题,还会出现弹框提示“此应用专为旧版Android打造,可能无法正常运行。请尝试检查更新或与开发者联系。”。所以需要删除AndroidManifest.xml中的SDK版本号指定而改为在build.gradle中指定SDK版本号。