ARTooloKit在android上編譯demo的幾個bug記載

最近一直在研究artoolkit在android上的應用,需要做一個AR的APP,需要在android上跑artoolkit框架,IDE使用的是android studio集成編譯器。

1、問題:在官網上下載了ARToolKit的源碼,用AS打開後,截圖如下(以下隨便一個例子工程):
這裏寫圖片描述
Error:Unsupported method: BaseConfig.getApplicationIdSuffix().
The version of Gradle you connect to does not support that method.
To resolve the problem you can change/upgrade the target version of Gradle you connect to.
Alternatively, you can ignore this exception and read other information from the model.Consult IDE log for more details (Help | Show Log)
問題:gradle的版本不對,因爲在安裝AS中下載了gradle的版本和這裏工程的配置的版本不一樣所致。
解決辦法
(1)找到自己安裝AS的路徑,找到如下路徑,找到自己的安裝的gradle-experimental的版本,將工程的gradle-experimental的版本改成自己已經安裝的gradle-experimental的版本就可以了。
下圖是自己電腦上已經安裝的gradle-experimental的版本:
這裏寫圖片描述
上圖可以看出我的AS安裝了0.8.0和0.11.0兩個版本的gradle-experimental。
(2)修改工程的gradle-experimental的配置的版本。打開工程最外面的那個build.gradle文件如下:
這裏寫圖片描述
如圖所示,這裏工程配置的gradle-experimental版本是0.2.1,但是自己的AS是沒有這個版本的,解決辦法很簡單,將這裏的版本改成自己的AS具有的版本就可以了。修改後文件如下:
這裏寫圖片描述
修改後,單擊右上的“try again”按鈕即可,即可解決這個bug

2、Error:Cannot set readonly property: proguardFiles for class: com.android.build.gradle.managed.BuildType。
解決了上個錯誤之後,有時候會報這個錯誤,原因就是,工程的配置文件中有代碼反編譯的一些配置,解決辦法,註釋掉這些配置就可以了。
解決辦法:註釋掉代碼的反編譯的配置
(1)打開工程中最下面的那個build.gradle文件,註釋掉裏面的一句話:
這裏寫圖片描述
需要注意的是:這裏的build.gradle文件和上個錯誤修改中的build.gradle文件不是同一個。註釋掉:proguardFiles += file(‘proguard-rules.pro’) 這句話。在網上百度了下,這句話與代碼的反編譯有關係,一般也用不到,所以就註釋了,對工程也沒影響。

3 Error:Attempt to read property ‘main’ from a write only view of model element ‘android.sources’ given to rule android.sources { … } @ aRSimpleNative\build.gradle line 42, column 5
這個錯誤只知道解決辦法,但是還是不知道原因,先說解決辦法吧。
(1)打開工程中最下面的那個build.gradle文件,修改android.sources的配置
修改前android.sources配置如下:

android.sources {
        main.jni {
            source {
                srcDirs = ['src/main/nop']
            }
        }
        main.jniLibs {
            source {
                srcDirs = ['src/main/libs']
            }
        }
    }

修改後的如下:

 android.sources {
        main {
            jni {
                source {
                    srcDirs = ['src/main/nop']
                }
            }
        }
        main {
            jniLibs {
                source {
                    srcDirs = ['src/main/libs']
                }
            }
        }
    }

主要的修改就是在兩個main後面加了兩個大括號,再單擊右上角的“try again”按鈕即可。

經過這個步驟後發現:工程就是可以跑的工程了,截圖如下:
這裏寫圖片描述

!!!!!大功告成!!!!!!!!!!

發佈了127 篇原創文章 · 獲贊 106 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章