1
我在Gitgub中使用了一個開源項目。
我必須更改它的包名稱。
archArm.c功能代碼源的主要部分是:
使用android JNI
jstring
Java_com_github_hiteshsondhi88_libffmpeg_ArmArchHelper_cpuArchFromJNI(JNIEnv* env, jobject obj)
和初級ArchArmHelper.java是:
package com.github.hiteshsondhi88.libffmpeg;
class ArmArchHelper {
static {
System.loadLibrary("ARM_ARCH");
}
native String cpuArchFromJNI();
boolean isARM_v7_CPU(String cpuInfoString) {
return cpuInfoString.contains("v7");
}
boolean isNeonSupported(String cpuInfoString) {
// check cpu arch for loading correct ffmpeg lib
return cpuInfoString.contains("-neon");
}
}
現在我編輯archArm的一部分。 c功能爲:
jstring
Java_com_emad_amerian_libffmpeg_ArmArchHelper_cpuArchFromJNI(JNIEnv* env, jobject obj)
我編輯我ArchArmHelper.java到:
package com.emad.amerian.libffmpeg;
class ArmArchHelper {
static {
System.loadLibrary("ARM_ARCH");
}
native String cpuArchFromJNI();
boolean isARM_v7_CPU(String cpuInfoString) {
return cpuInfoString.contains("v7");
}
boolean isNeonSupported(String cpuInfoString) {
// check cpu arch for loading correct ffmpeg lib
return cpuInfoString.contains("-neon");
}
}
我可以建立我的APK文件成功,但在運行時會啓動我的項目返回錯誤:
02-28 23:29:20.001 15094-15094/com.emad.amerian.sampleffmpeg E/art: No implementation found for java.lang.String com.emad.amerian.libffmpeg.ArmArchHelper.cpuArchFromJNI() (tried Java_com_emad_amerian_libffmpeg_ArmArchHelper_cpuArchFromJNI and Java_com_emad_amerian_libffmpeg_ArmArchHelper_cpuArchFromJNI__)
謝謝,我測試了它,但返回了相同的錯誤 –
您重建了.so文件嗎?有沒有任何警告或錯誤? – samgak
我正在使用ready項目。那麼如何才能重建.so文件?項目鏈接是:github.com/WritingMinds/ffmpeg-android-java –