小编TSG*_*mes的帖子

如何通过NDK访问Android Lollipop DocumentFile文件?

如何在原生JNI代码中访问Android KitKat/Lollipop中的DocumentFile生成的文件,因此我可以使用fopen,fread等.我特别要求它通过NDK访问外部SD卡文件.

android android-ndk android-5.0-lollipop

13
推荐指数
1
解决办法
1571
查看次数

如何捕获错误'位图太大而无法上传到纹理'

我的android应用程序处理非常大的Bitmaps.因此,我在图像视图中关闭了硬件加速功能.但是,有些用户已将Developer-Option的"强制GPU加速"设置为开启状态.这会导致错误"位图太大而无法上传到纹理中".如果我使用isHardwareAccelerated()检查视图,它总是返回false.

有没有办法捕获OpenGL-Error'Bitmap太大而无法上传到纹理'?

java android bitmap

6
推荐指数
1
解决办法
2561
查看次数

为什么Canvas.drawPath()这么慢?

我曾经说过,使用Canvas.drawPath(path,paint)会比连续的Canvas.drawLine()慢得多,或者使用Canvas.drawLines().我无法提供准确的性能数据,但我注意到在Nexus 10上使用路径绘图非常慢(<10 FPS),而使用drawLines则更加平滑.是否有一些实现错误或者可能是一个参数来加速这种性能?截至目前,我根本不能使用drawPath(),因为性能很弱.

performance android canvas

6
推荐指数
1
解决办法
2004
查看次数

写入jfloat数组时"致命信号11(SIGSEGV)在0x00000010(代码= 1)"

我目前正在用ndk实现一个android函数.我在java中声明了这个函数

public static native void calculate(float[] rgb,float factor);
Run Code Online (Sandbox Code Playgroud)

然后,我写了C函数:

JNIEXPORT void JNICALL Java_<package>_calculate(
       JNIEnv * env,
       jobject object,
       jfloatArray rgbObject,
       jfloat factor){
   jfloat* rgb = (*env)->GetFloatArrayElements(env,rgbObject,0);
   if(rgb==NULL) return;

   rgb[0]=5; // Test, crash!

   (*env)->ReleaseFloatArrayElements(env,rgb,rgbObject,0);
   }
Run Code Online (Sandbox Code Playgroud)

但是,每当我尝试使用数组和某个值调用该函数时,我都会收到logcat消息:

A/libc(16064):致命信号11(SIGSEGV)位于0x00000010(代码= 1)

之后,应用程序崩溃了.我发现在写入浮点值时总会出现这种情况.阅读不会导致崩溃.

我有什么不对吗?是不是可以写出数组值?

java arrays android android-ndk

5
推荐指数
1
解决办法
9312
查看次数

Android RenderScript FinalizerWatchdogDaemon 致命异常

我在应用程序中使用 RenderScript 来执行多项图像处理任务。

有时,我会随机得到以下异常:

10-10 15:27:04.479: E/AndroidRuntime(2113): FATAL EXCEPTION: FinalizerWatchdogDaemon
10-10 15:27:04.479: E/AndroidRuntime(2113): java.util.concurrent.TimeoutException: android.renderscript.Type.finalize() timed out after 10 seconds
10-10 15:27:04.479: E/AndroidRuntime(2113):     at android.renderscript.RenderScript.nObjDestroy(RenderScript.java:216)
10-10 15:27:04.479: E/AndroidRuntime(2113):     at android.renderscript.BaseObj.finalize(BaseObj.java:116)
10-10 15:27:04.479: E/AndroidRuntime(2113):     at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187)
10-10 15:27:04.479: E/AndroidRuntime(2113):     at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
10-10 15:27:04.479: E/AndroidRuntime(2113):     at java.lang.Thread.run(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)

我的所有 RenderScript 调用都包含在信号量中,以防止同一脚本并行运行。谁能告诉我这条消息的含义以及如何防止它?

java android renderscript

5
推荐指数
1
解决办法
5217
查看次数

如何在Android中为WebP设置压缩选项

我尝试使用Android的原生位图中的Bitmap.compress方法.从API 14开始,CompressFormat.WEBP是此方法支持的格式.但是,无论我设置什么样的质量值,即使是100,它似乎总是被压缩有损.有没有办法强制松散的WEBP压缩,如果你想存储alpha,还有控制权?

android bitmap webp

5
推荐指数
0
解决办法
666
查看次数

相机无法正常工作 - startPreview失败

在Android 2.x设备上运行时,我的相机应用程序总是会出现异常.在较新的Android设备上,该应用运行良好.

堆栈跟踪:

10-31 19:51:52.187: W/System.err(14904): java.lang.RuntimeException: startPreview failed
10-31 19:51:52.195: W/System.err(14904):    at android.hardware.Camera.startPreview(Native Method)
10-31 19:51:52.195: W/System.err(14904):    at com.example.MainActivity.startCamera(MainActivity.java:418)
10-31 19:51:52.195: W/System.err(14904):    at com.example.MainActivity.surfaceChanged(MainActivity.java:467)
10-31 19:51:52.195: W/System.err(14904):    at android.view.SurfaceView.updateWindow(SurfaceView.java:558)
10-31 19:51:52.195: W/System.err(14904):    at android.view.SurfaceView.dispatchDraw(SurfaceView.java:350)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644) …
Run Code Online (Sandbox Code Playgroud)

camera android exception surfaceview

1
推荐指数
1
解决办法
3590
查看次数