我從GitHub下載了Telegram源代碼並編譯它。首先,它給了我一些錯誤有關NDK_PROJECT_PATH = null
所以有人建議我改變:
未找到UnsatisfiedLinkError本地方法 - Android-Telegram
sourceSets.main.jniLibs.srcDirs = ['./jni/']
externalNativeBuild {
ndkBuild {
path "jni/Android.mk"
}
}
到:
sourceSets.main {
jniLibs.srcDir 'libs'
jni.srcDirs = [] //disable automatic ndk-build call
}
的gradle中。
後libs\armeabi
和libs\armeabi-v7a
(兩者約4KB)的生成運行2 .so文件,我可以得到LaunchActivity.java,但是當我在START MESSAGING應用程序崩潰點擊ApplicationLoader.loadWallpaper();
(在LaunchActivity.java )運行一個可運行的。我debbuged它,直到我達到uncaughtException
這是如下:
未找到unsatisfiedlinkerror本地方法:org.telegram.messenger.Utilities.pinBitmap:(Landroid /圖形/位圖)之後,我再次編譯
native jni Manualy從命令提示符(我的意思是去nji父文件夾並運行ndk-build.cmd)。 編譯完成時在nji父文件夾中創建了「obj」文件夾,並且再次生成了2個文件,但大小爲14kb。
我將它們替換爲libs文件夾中的舊文件。
清理並重新運行後,我仍然有同樣的錯誤(本地方法未找到...)。
任何機構可以幫助我這個NDK有什麼問題? 任何幫助,將不勝感激。
謝謝,MA。
你有沒有下載NDK並指向它的工作室? –
@Jon Goodwin,當然它在C:\ Users \ Mohamad \ AppData \ Local \ Android \ sdk \ ndk-bundle中,我將它設置在Project結構中 –
你有沒有檢查過你的'TARGET_PLATFORM' /'APP_PLATFORM'?它應該匹配你的minSdkVersion。昨天有類似的問題 - 這可能會有所幫助:http://stackoverflow.com/questions/40468805/unsatisfiedlinkerror-dlopen-failed-cannot-locate-symbol-aeabi-memcpy4-refe – vkislicins