對於android開發和java來說絕對是新的,所以這個問題可能是微不足道的,但我已經對要嘗試或閱讀的內容感到困惑,所以請幫助。試圖創建一個應該對選定的一組圖像進行批處理的應用程序。發現一個library完美地適合我的需要,連接它,並寫了一個簡單的測試,這不得不看看是否一切正常,因爲它應該:無法在Android項目中工作.so共享庫
if (requestCode == SELECT_PICTURE && resultCode == RESULT_OK && null != data) {
Uri selectedImageUri = data.getData();
m_ImagePath = getRealPathFromUri(selectedImageUri);
try {
m_MagickImage = new MagickImage(new ImageInfo(m_ImagePath));
m_EffectImage = m_MagickImage.rotateImage(90);
m_Bitmap = MagickBitmap.ToReducedBitmap(m_EffectImage, 1000);
} catch (MagickException e) {
Log.d(LOGTAG, e.toString());
}
ImageView imageview = (ImageView) findViewById(R.id.imageView);
imageview.setImageBitmap(m_Bitmap);
//imageview.setImageURI(selectedImageUri);
openFileButton.setVisibility(View.GONE);
}
項目編譯沒有警告完全沒問題,但是當我部署它真正的硬件和分配給筆試按下按鈕,我得到了logcat中出現以下錯誤:更多的系統信息和警告(不認爲他們是重要的,但可以提供所需的按需一切)
JNI DETECTED ERROR IN APPLICATION: GetStringUTFChars received NULL jstring
in call to GetStringUTFChars
from void magick.ImageInfo.setFileName(java.lang.String)
"main" prio=5 tid=1 Runnable
和200串。
也是運行後我得到了很多的紅色警告信息,如
cannot resolve corresponding jni function Java_magick_ImageInfo_setFileName
在與Android的ImageMagick的幾乎所有的java文件。
庫連接爲.jar文件,按照this線程中的說明操作。這裏是我的設置:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:design:25.0.0'
testCompile 'junit:junit:4.12'
}
和
sourceSets {
main {
java.srcDirs = ['src/main/java']
}
}
在的build.gradle。
armeabi.jar與.so文件 '庫' 項目, 'fakeawt' 和根目錄 'magick' 文件夾,在「的src/main/Java的包裝類,並
static {
System.loadLibrary("imagemagick");
}
在Main.java的開頭。
任何想法可能會出錯,以及如何正確解決它?