2016-11-08 58 views
0

我從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\armeabilibs\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。

+0

你有沒有下載NDK並指向它的工作室? –

+0

@Jon Goodwin,當然它在C:\ Users \ Mohamad \ AppData \ Local \ Android \ sdk \ ndk-bundle中,我將它設置在Project結構中 –

+1

你有沒有檢查過你的'TARGET_PLATFORM' /'APP_PLATFORM'?它應該匹配你的minSdkVersion。昨天有類似的問題 - 這可能會有所幫助:http://stackoverflow.com/questions/40468805/unsatisfiedlinkerror-dlopen-failed-cannot-locate-symbol-aeabi-memcpy4-refe – vkislicins

回答

0

所有的問題都是因爲我的項目的目錄。 該目錄包含空間,並且與NDK不兼容。 我將項目移至另一個目錄,現在編譯。

相關問題