Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
6619941c
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6619941c
编写于
2月 14, 2013
作者:
A
Alexander Smorkalov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Issues in management of local reference to jni objects fixed.
上级
b6e7aeab
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
4 deletion
+4
-4
android/service/engine/jni/JNIWrapper/JavaBasedPackageManager.cpp
...service/engine/jni/JNIWrapper/JavaBasedPackageManager.cpp
+4
-4
未找到文件。
android/service/engine/jni/JNIWrapper/JavaBasedPackageManager.cpp
浏览文件 @
6619941c
...
...
@@ -40,6 +40,7 @@ bool JavaBasedPackageManager::InstallPackage(const PackageInfo& package)
if
(
!
jmethod
)
{
LOGE
(
"MarketConnector::GetAppFormMarket method was not found!"
);
jenv
->
DeleteLocalRef
(
jclazz
);
return
false
;
}
...
...
@@ -74,7 +75,6 @@ vector<PackageInfo> JavaBasedPackageManager::GetInstalledPackages()
JavaContext
->
AttachCurrentThread
(
&
jenv
,
NULL
);
}
LOGD
(
"GetObjectClass call"
);
jclass
jclazz
=
jenv
->
GetObjectClass
(
JavaPackageManager
);
if
(
!
jclazz
)
{
...
...
@@ -82,15 +82,14 @@ vector<PackageInfo> JavaBasedPackageManager::GetInstalledPackages()
return
result
;
}
LOGD
(
"GetMethodID call"
);
jmethodID
jmethod
=
jenv
->
GetMethodID
(
jclazz
,
"GetInstalledOpenCVPackages"
,
"()[Landroid/content/pm/PackageInfo;"
);
if
(
!
jmethod
)
{
LOGE
(
"MarketConnector::GetInstalledOpenCVPackages method was not found!"
);
jenv
->
DeleteLocalRef
(
jclazz
);
return
result
;
}
LOGD
(
"Java package manager call"
);
jobjectArray
jpkgs
=
static_cast
<
jobjectArray
>
(
jenv
->
CallNonvirtualObjectMethod
(
JavaPackageManager
,
jclazz
,
jmethod
));
jsize
size
=
jenv
->
GetArrayLength
(
jpkgs
);
...
...
@@ -102,7 +101,6 @@ vector<PackageInfo> JavaBasedPackageManager::GetInstalledPackages()
{
jobject
jtmp
=
jenv
->
GetObjectArrayElement
(
jpkgs
,
i
);
PackageInfo
tmp
=
ConvertPackageFromJava
(
jtmp
,
jenv
);
jenv
->
DeleteLocalRef
(
jtmp
);
if
(
tmp
.
IsValid
())
result
.
push_back
(
tmp
);
...
...
@@ -137,6 +135,7 @@ static jint GetAndroidVersion(JNIEnv* jenv)
PackageInfo
JavaBasedPackageManager
::
ConvertPackageFromJava
(
jobject
package
,
JNIEnv
*
jenv
)
{
jclass
jclazz
=
jenv
->
GetObjectClass
(
package
);
jfieldID
jfield
=
jenv
->
GetFieldID
(
jclazz
,
"packageName"
,
"Ljava/lang/String;"
);
jstring
jnameobj
=
static_cast
<
jstring
>
(
jenv
->
GetObjectField
(
package
,
jfield
));
const
char
*
jnamestr
=
jenv
->
GetStringUTFChars
(
jnameobj
,
NULL
);
...
...
@@ -148,6 +147,7 @@ PackageInfo JavaBasedPackageManager::ConvertPackageFromJava(jobject package, JNI
const
char
*
jversionstr
=
jenv
->
GetStringUTFChars
(
jversionobj
,
NULL
);
string
verison
(
jversionstr
);
jenv
->
DeleteLocalRef
(
jversionobj
);
jenv
->
DeleteLocalRef
(
jclazz
);
static
const
jint
api_level
=
GetAndroidVersion
(
jenv
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录