小编Ari*_*hys的帖子

Android NDK - 只能用C/C++编写

是否有可能用C/C++编写一个完整的NDK应用程序而没有像hello-jni示例项目(HelloJni.java)中的Java"启动"类 - 以某种方式创建一个HelloJni.c,它会做同样的事情吗?

c c++ java android android-ndk

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

Android OpenGL ES 2.0模拟器

我有一个支持OpenGl ES 2.0(HTC Desire)的设备,当然在设备上部署app比在模拟器上快得多.默认的android模拟器不支持2.0,androidX86项目和类似的androbox项目不支持本机代码(NDK)所以即使Hello-Jni崩溃它们(所有样本在标准AVD上工作正常除了Hello-GL2样本ofc),不知道支持他们是否是OpenGL ES 2.0,请告诉我.

因此,如果有本地方式(NDK)的开发支持OpenGl 2.0 - 如何在没有设备的情况下测试应用程序?

android android-ndk android-emulator opengl-es-2.0

16
推荐指数
2
解决办法
5万
查看次数

为Android编译Lua lib - 成功,但奇怪的段错误

对不起,对不起.如果你愿意,可以跳过关于编译Lua的部分内容(几乎可以),直接回答最后一个问题.

让我们编译Lua库就像Android的静态库一样.

下载最新的源代码并查看doc/readme.html - 在其他系统上构建Lua部分以获取要编译的文件列表.

当然看看makefile - 看看我们必须设置平台标志,例如linux,bsd等.但当然没有Android平台,所以我们可以选择将平台设置为ANSI,Linux,Posix或Generic.

第一个问题:它构建正常(有关llex.c的一个例外,我将在下面描述),即使没有任何平台标志,所以这可能是不必要的?

我设置ANSI标志.

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := lua
LOCAL_CFLAGS    := -DLUA_ANSI
LOCAL_SRC_FILES := lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c loadlib.c linit.c
include $(BUILD_STATIC_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

Application.mk

APP_MODULES := lua
APP_PLATFORM := android-8
APP_OPTIM   := release
APP_ABI := armeabi
Run Code Online (Sandbox Code Playgroud)

并且当然有错误

Compile thumb  : lua <= …
Run Code Online (Sandbox Code Playgroud)

c lua android android-ndk

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

bash中的字符串替换 - 错误的替换错误

我是bash脚本的新手,但我不理解为什么它不起作用

#!/bin/bash
foo=foobarfoobar
echo ${foo//bar/baz}
Run Code Online (Sandbox Code Playgroud)

第3行的错误替换错误

linux bash

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

Android添加本机支持 - 未解析的jni.h,android/log.h等

在今天之前,我使用Eclipse 3.8和Sequoyah插件进行Android NDK项目.但今天我决定用Eclipse和NDK刷新Eclipse到Juno的版本.
我非常高兴然后在ADT安装中看到Android Native Tools,它将像Sequoyah一样完成同样的工作,但具有调试功能.
我创建了新的Android项目来测试它.
添加Android Native Support会创建带有Android.mk,.cpp文件的jni文件夹,与Sequayah一样.然后我得到第一个没有得到解决,以jni.h.我得到Sequoyah的类似错误,所以我重建索引并重新启动Eclipse.重新启动后它不会消失.
我在C/C++属性中转到Paths And Symbols.但是,所有需要内置的包括.
(NDK PATH)/ platforms/android-8/arch-arm/usr/include - 有jni.h,log.h等
我尝试添加额外的dublicate包含到jni.h,清理项目,重启,重建索引,将.ccp更改为.c,它仍未解决.我在错误日志中没有错误,但在jni函数的编辑器中出现语法错误.

NativeLib.java

package com.aristarhys.glow;

public class NativeLib 
{
private static final String NATIVE_LIB = "glow";
static 
{
    System.loadLibrary(NATIVE_LIB); 
}
  private NativeLib(){};
  public static native void test();
}
Run Code Online (Sandbox Code Playgroud)

glow.h

#ifndef GLOW_H_
#define GLOW_H_

#include <jni.h> //unresolved
//syntax error
JNIEXPORT void JNICALL Java_com_aristarhys_glow_NativeLib_test(JNIEnv* env, jclass cls);
#endif /* GLOW_H_ */
Run Code Online (Sandbox Code Playgroud)

log.h

#ifndef LOG_H_
#define LOG_H_

#include …
Run Code Online (Sandbox Code Playgroud)

c java-native-interface android android-ndk

9
推荐指数
1
解决办法
2万
查看次数

绘制到FBO - 精灵倒置上下问题

那么,FBO的使用范围很广,它有助于使复杂的效果更容易.我设置FBO并绘制它,然后渲染FBO纹理四边形,没有任何问题,甚至测试简单的屏幕处理颜色着色器.但是我为FBO渲染的一切都因为某些原因而颠倒过来.如果我渲染到库存屏幕FBO一切正常,我甚至不执行任何旋转精灵.

FBO创作

typedef struct tex
{
 dim2i size; // int width, int height
 GLuint id;
} tex;

typedef struct fbo
{
 GLuint frame_buffer;
 tex buffer_tex;
}fbo;

void set_fbo(fbo* res, int width, int height)
{
 GLint tex_size;
 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &tex_size);
 GLint render_buffer_size;
 glGetIntegerv(GL_MAX_RENDERBUFFER_SIZE, &render_buffer_size);
 LOGI("Max render buffer size: %d, max texture size: %d", render_buffer_size, tex_size);    //max render buffer size: 3838, max texture size: 2048
 glGenFramebuffers(1, &res->frame_buffer);
 GLuint depth_buffer;
 glGenRenderbuffers(1, &depth_buffer);
 glGenTextures(1, &res->buffer_tex.id);
 res->buffer_tex.size.w = width;
 res->buffer_tex.size.h = height;
 glBindTexture(GL_TEXTURE_2D, res->buffer_tex.id);
 glTexImage2D(GL_TEXTURE_2D, 0, …
Run Code Online (Sandbox Code Playgroud)

c opengl-es glsl opengl-es-2.0

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

事务管理器恢复/回滚上次提交

我尝试通过将测试数据从测试用例setUp()放到setUpClass()/teardownClass类方法来加速我的测试,因此它不会为测试用例中的每个测试重新创建相同的仅选择夹具.

@classmethod
def setUpClass(cls):
    plant.StuffFactory() #plant stuff with FactoryBoy
    transaction.commit()

@classmethod
def tearDownClass(cls):
    session.query(models.Stuff).delete() # delete planted stuff
    transaction.commit()
Run Code Online (Sandbox Code Playgroud)

但我不喜欢自己删除session.delete的东西,因为我使用了很多模型而不想跟踪我种植的内容.我想要类似的东西

@classmethod
def tearDownClass(cls):
    session.clear() #delete all
    transaction.commit()
Run Code Online (Sandbox Code Playgroud)

但是session.close()session.remove()不会影响提交的数据.所以我寻求某种方式"取消",setUpClass transaction.commit()就像我不种植任何东西.

我尝试嵌套事务和保存点,但它们只有在尚未提交数据的情况下才能工作.

有什么指针吗?

python sqlalchemy pyramid

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

reset_counters引发未定义的方法错误,但在类似的关系上工作正常

我尝试将counter_cache添加到User以计算自有项目.

用户有很多项目,Project有很多用户,但Project属于其中一个.

所以我写了一个迁移,为counter_cache添加额外的计数字段.

评论没有问题reset_counter.

User.reset_counters user.id, :projects提出NoMethodError:未定义的方法`counter_cache_column'为nil:NilClass.

项目上的counter_cache也正常工作.如果我添加额外的项目,它将增加projects_count字段,如果我删除一个 - 减少.

楷模

class User < ActiveRecord::Base
  has_many :projects, :through => :team_members
  has_many :team_members

class TeamMember < ActiveRecord::Base
  belongs_to :user
  belongs_to :project

class Project < ActiveRecord::Base
  has_many :users, :through => :team_members
  has_many :team_members
  belongs_to :leader, :class_name => :User, :counter_cache => true

class Comment < ActiveRecord::Base
  belongs_to :user, :counter_cache => true
Run Code Online (Sandbox Code Playgroud)

移民

class AddCounters < ActiveRecord::Migration
  def up
    add_column :users, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3

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

Android NDK assert.h问题

第一个 - 是默认情况下已经定义的NDEBUG,因此断言在#undef之前不起作用.第二个 - 他们工作,但我没有收到DDMS登录.

如果有一些特定于android的assert.h?

或者我只是做错了什么?

c c++ android assert android-ndk

6
推荐指数
2
解决办法
9504
查看次数

Libzip-从zip读取文件内容

我使用libzip处理zip文件,然后一切正常,直到需要从zip读取文件,我只需要读取整个文本文件,因此实现类似PHP的“ file_get_contents”功能非常好。
要从zip读取文件,有一个函数
“ int zip_fread(struct zip_file * file,void * buf,zip_uint64_t nbytes)”
主要问题是我不知道buf的大小必须为多少,我必须读取多少nbytes(好吧,我需要读取整个文件,但是文件大小不同)。我只是可以做一个大的缓冲区来适合他们所有并读取所有它的大小,或者做一个while循环直到fread返回-1,但是我认为这不是合理的选择。

c c++ zip zipfile

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